자료구조
대량의 데이터를 효율적으로 관리하기 위해, 데이터를 저장 및 정렬하는 방식입니다.
자료구조의 역할
- 효율적으로 데이터에 저장할 수 있습니다.
- 빠르게 데이터에 CRUD 할 수 있습니다.
- 메모리를 효율적으로 관리할 수 있습니다.

선형 자료구조(Linear Data Structure)
선형 자료구조는 데이터들이 일렬로 나열된 구조입니다. 데이터의 순서가 중요하며, 각 데이터 요소는 하나의 직선적인 관계를 갖습니다.
- 동일한 데이터 타입을 가지는 여러 데이터를 연속된 메모리 공간에 저장하는 자료구조입니다.
- 인덱스를 이용해 빠르게 데이터에 접근할 수 있습니다.
- 고정된 크기를 가집니다.
2. 연결 리스트 (Linked List)
- 각 요소(노드)가 데이터와 다음 요소에 대한 참조(주소값)를 가지고 있는 자료구조입니다.
- 데이터 크기가 동적으로 변할 수 있으며, 삽입 및 삭제가 용이합니다.
3. 스택 (Stack)
- 후입선출(LIFO, Last In First Out) 방식으로 데이터를 처리하는 자료구조입니다.
4. 큐 (Queue)
- 선입선출(FIFO, First In First Out) 방식으로 데이터를 처리하는 자료구조입니다.
5. 덱 (Deque, Double-ended Queue)
- 양쪽 끝에서 삽입과 삭제가 모두 가능한 자료 구조로
큐(Queue)와 스택(Stack)의 특징을 모두 가지고 있습니다.
비선형 자료구조(NoneLinear Data Structure)
비선형 자료구조는 데이터들이 계층적 또는 복잡한 관계를 가지며, 데이터들 간에 직선적이지 않은 관계를 형성합니다.
1. 트리 (Tree)
계층적인 구조로, 각 노드는 부모-자식 관계를 가집니다. 루트 노드에서 시작하여 가지를 타고 내려가는 방식입니다.
2. 그래프(Graph)
- 그래프는 정점(Vertex, Node)과 간선(Edge)으로 구성된 자료 구조로, 각 정점은 서로 연결되어 있습니다.
- 방향 그래프(Directed Graph)와 무방향 그래프(Undirected Graph)로 나뉠 수 있습니다.
- 그래프는 순환 혹은 비순환일 수 있습니다.
Reference
https://velog.io/@neity16/%EC%9E%90%EB%A3%8C-%EA%B5%AC%EC%A1%B0Data-Structure