자료구조 & 알고리즘/자료구조 & 알고리즘

[자료구조] 선형자료구조

오징어달료 2024. 9. 13. 02:30

선형자료구조


Stack과 Queue자료구조의 큰 카테고리인 선형자료구조란?

선형 자료구조는 데이터를 일렬로 나열하여 저장하는 구조.

데이터가 연속적으로 배열되어 있어 각 요소는 하나의 이전 요소와 하나의 다음 요소만을 참조할 수 있음.
이러한 구조는 데이터를 탐색하거나 순차적으로 처리하기에 적합.
대표적인 예로 배열(Array), 연결 리스트(Linked List), 스택(Stack), 큐(Queue) 등이 있습니다.

1. 배열(Array)

  • 특징: 메모리 상에서 연속된 공간에 데이터를 저장합니다. 인덱스를 이용해 빠르게 접근할 수 있으며, 고정된 크기를 가지는 경우가 많음
  • 장점: 인덱스를 통한 빠른 접근(임의 접근)이 가능.
  • 단점: 크기가 고정되어 있어, 크기를 초과하면 새로운 메모리 공간을 할당해야 함.

2. 연결 리스트(Linked List)

  • 특징: 각 노드가 데이터와 다음 노드에 대한 참조를 포함. 배열과 달리 크기가 고정되지 않으며, 동적으로 노드를 추가하거나 삭제할 수음.
  • 장점: 메모리 효율적이며, 삽입과 삭제가 배열보다 쉬움.
  • 단점: 임의 접근이 어렵고, 탐색 시 첫 번째 노드부터 차례대로 접근해야 함.

3. 스택(Stack)

  • 특징: 후입선출(LIFO, Last In First Out) 방식으로 작동함. 즉, 마지막에 들어온 데이터가 먼저 나감. 
  • 장점: 순서에 따른 데이터 처리에 유용하며, 재귀적 문제 해결에 사용됨.
  • 단점: 중간 데이터를 직접 접근하기 어려움.

4. 큐(Queue)

  • 특징: 선입선출(FIFO, First In First Out) 방식으로 작동. 먼저 들어온 데이터가 먼저 나감. 
  • 장점: 순차적인 처리 작업에 적합하며, 대기열이나 작업 스케줄링에서 자주 사용됨.
  • 단점: 스택과 마찬가지로 중간 데이터 접근이 어려움.

이러한 선형 자료구조는 데이터 처리의 효율성과 속도를 최적화할 수 있도록 다양한 상황에서 사용

'자료구조 & 알고리즘 > 자료구조 & 알고리즘' 카테고리의 다른 글

[자료구조] List  (0) 2024.09.19
[자료구조] Deque  (1) 2024.09.16
[자료구조] Queue 구현한 간단한 대기열 시스템  (0) 2024.09.12
[자료구조] Queue  (0) 2024.09.11
[자료구조] Stack  (0) 2024.09.10