본문 바로가기

WEB

Data Structure(자료 구조)란?

자료 구조란 데이터에 편리하게 접근하고 조작하기 위한 데이터를 저장하거나 조직하는 방법입니다.

데이터를 효율적으로 저장, 관리하여 메모리를 효율적으로 사용하기 위함입니다. 적절한 자료구조의 사용은 메모리의 용량을 절약해주고, 실행시간을 단축시켜줄 수 있습니다.
-> 예를 들면, 특정 원소를 Search하거나 add할 때(..등), 자료구조마다 그 방식이 다르고, 따라서 사용하는 메모리의 양과 실행 소요 시간도 다릅니다.
그래서 Data마다(또는 수행하는 일마다) 적절한 자료구조가 다릅니다.

 

무엇보다 각 자료구조의 본질과 컨셉을 이해하고 상황에 맞는 적절한 자료 구조를 선택하는 것이 중요합니다.

 

데이터에 맞는 적절한 자료 구조를 사용하는 것은 전체 개발 시스템에 굉장히 큰 영향을 끼칩니다.

 

 

자료 구조의 분류

 

크게 단순구조와 비단순구조로 나누어집니다.

Primitive Data Structure(단순 구조) : 프로그래밍에서 사용되는 기본 데이터 타입

 

None-Primitive Data Structure(비단순 구조) : 단순한 데이터를 저장하는 구조가 아니라 여러 데이터를 목적에 맞게 효과적으로 저장하는 자료 구조

  • Linear Data Structure(선형 구조) : 저장되는 자료의 전후 관계가 1:1 (ex. List, Stacks, Queues)
  • Non-Linear Data Structure(비선형 구조) : 데이터 항목 사이의 관계가 1:n 또는 n:m (ex. Graphs, Trees )

 

 

 

이미지출처  https://lee-mandu.tistory.com/462

 

 

리스트

선형리스트 

연결 리스트(Linked List)

스택

큐(Queue)

데크

 

 

배열과 같이 연속되는 기억장소에 저장되는 리스트입니다.

가장 간단한 자료구조

 

  • Array(Python에서는 List)
  • Tuple
  • Set
  • Dictionary
  • Stack & Queue
  • Tree

 

 

 

 

자료 구조의 이용

 

정렬:기억장치 내의 자료를 일정한 순서의 의해 나열하는 것