Stack, Queue, Array, Linked List

0

TIL

목록 보기
81/126

Array: 배열은 메모리 공간에 연속적으로 저장된 데이터의 집합이다. 배열의 특정 위치에 저장된 요소를 O(1)의 시간 복잡도로 액세스할 수 있다. 배열은 크기가 고정되어 있으며 삽입 및 삭제가 비효율적이다.

Linked List: 데이터 요소가 포인터로 연결된 노드의 집합. 각 노드는 데이터와 다음 노드의 포인터를 가지고 있다. 삽입 및 삭제가 빠르며, 크기가 동적으로 확장 가능하지만, 임의의 위치에 액세스하려면 O(n)의 시간 복잡도가 필요.

Stack: 데이터 요소가 마지막에 추가되고 첫 번째로 제거되는 후입선출(LIFO) 데이터 구조
삽입 및 제거 작업이 O(1)의 시간 복잡도로 수행되는 효율적인 자료구조

Queue: 데이터 요소가 처음에 추가되고 처음에 제거되는 선입선출(FIFO) 데이터 구조
삽입 및 제거 작업이 O(1)의 시간 복잡도로 수행되는 효율적인 자료구조

Stack과 Queue는 모두 Linked List나 Array와 함께 구현될 수 있다. 그러나 Stack은 보통 Linked List로 구현하고, Queue는 Linked List 또는 Circular Array로 구현하는 것이 일반적. Linked List는 동적으로 크기를 조정할 수 있지만, Array는 사전에 크기를 지정해야하므로, Queue의 경우 큐의 최대 크기가 예측 가능하지 않을 때는 Linked List를 사용하는 것이 좋다.

0개의 댓글