Algorithm/Data Structure

[Data Structure]1. 자료구조란 무엇일까? 정의와 분류

earlykim 2019. 10. 22. 17:58

※본 포스팅은 학부생의 수준에서 작성한 글이므로 내용이 다소 부족할 수 있습니다. 참고하시기 바랍니다※


자료구조란?

위키백과에서는 자료구조에 대해 다음과 같이 정의하고 있습니다.

- 컴퓨터 과학에서 효율적인 접근 및 수정을 가능케 하는 자료의 조직, 관리, 저장을 의미 

 

조금 풀어서 설명하자면, 다음과 같이 정의할 수 있습니다.

"어떠한 데이터 집단을 보다 효율적으로 다루기 위해서 이 집단을 어떻게 저장할 것인가?"

 

따라서 사용하는 자료구조에 따라서 실행시간과 공간활용도의 차이가 매우 상이하게 나타날 수 있습니다.

 

자료구조의 분류

- 구현에 따른 분류

  • 배열(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)로 구성되어 있는 구조.

 

 

다음 포스팅에서는 자료구조의 선택기준과 특징에 대해 알아보겠습니다!

 

출처