※본 포스팅은 학부생의 수준에서 작성한 글이므로 내용이 다소 부족할 수 있습니다. 참고하시기 바랍니다※
자료구조란?
위키백과에서는 자료구조에 대해 다음과 같이 정의하고 있습니다.
- 컴퓨터 과학에서 효율적인 접근 및 수정을 가능케 하는 자료의 조직, 관리, 저장을 의미
조금 풀어서 설명하자면, 다음과 같이 정의할 수 있습니다.
"어떠한 데이터 집단을 보다 효율적으로 다루기 위해서 이 집단을 어떻게 저장할 것인가?"
따라서 사용하는 자료구조에 따라서 실행시간과 공간활용도의 차이가 매우 상이하게 나타날 수 있습니다.
자료구조의 분류
- 구현에 따른 분류
- 배열(Array) - 가장 일반적인 구조. 메모리 상에 같은 타입의 자료가 연속적으로 저장되는 구조.
- 튜플(Tuple) - 둘 이상의 자료형을 묶음으로 다루는 구조.
- 연결 리스트(Linked List) - 기본 단위는 노드. 노드는 자료와 다음 노드를 가리키는 참조값으로 구성되어 있는 구조.
- 원형 연결 리스트(Circular Linked List) - 각 노드는 다음 노드를 가리키고, 마지막 노드가 처음 노드를 가리키는 연결 리스트 구조.
- 이중 연결 리스트(Double Linked List) - 각 노드는 이전 노드와 다음 노드를 가리키는 참조값으로 구성되는 구조.
- 환형 이중 연결 리스트(Circular Double Linked List) - 처음 노드가 이전 노드로 마지막 노드를 가리키고, 마지막 노드가 다음 노드로 처음 노드를 가리키는 이중 연결 리스트 구조.
- 해시 테이블(Hash Table) - 개체가 해시값에 따라 해시 테이블에 저장되는 구조.
- 형태에 따른 분류
선형 자료구조(Linear Data Structure)
- 스택(Stack) - 먼저 들어간 것이 가장 나중에 나오며 반대로 가장 나중에 들어간 것이 가장 먼저 나오는 구조.
- 큐(Queue) - 먼저 들어간 것이 가장 먼저 나오는 구조.
- 데크(Deque) - 큐에서 입구가 양쪽에 존재하여 스택과 큐의 형태를 모두 사용 가능한 구조
비선형 자료구조(Non-Linear Data Structure)
- 트리(Tree) - 뿌리와, 뿌리 또는 다른 꼭짓점을 단 하나의 부모로 갖는 꼭짓점들로 이루어진 구조.
- 그래프(Graph) - 꼭짓점(Edge)와 각 꼭짓점을 잇는 변(Vertex)로 구성되어 있는 구조.
다음 포스팅에서는 자료구조의 선택기준과 특징에 대해 알아보겠습니다!
출처