자료 구조란 데이터에 편리하게 접근하고 조작하기 위한 데이터를 저장하거나 조직하는 방법입니다.
데이터를 효율적으로 저장, 관리하여 메모리를 효율적으로 사용하기 위함입니다. 적절한 자료구조의 사용은 메모리의 용량을 절약해주고, 실행시간을 단축시켜줄 수 있습니다.
-> 예를 들면, 특정 원소를 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
자료 구조의 이용
정렬:기억장치 내의 자료를 일정한 순서의 의해 나열하는 것