Stack(스택)
- 정보처리기술사/알고리즘,자료구조
- 2015. 7. 26.
아래 그림 하나로 모든 것을 설명할 수 있는 것이 Stack 이다.
스택은, 선형구조(LIFO) 즉, Last In First Out 기반의 자료구조이고,
Push라는 것으로 자료를 저장하고, Pop이라는 연산으로 가장 최근에 저장된 자료를 사용, 삭제하게 된다.
좀 더 쉽게 설명하자면, 접시를 들 수 있는데...
접시를 계속 쌓이두면, 사용할 때도 가장 최근에 쌓아둔 접시를 사용하게 된다....
그럼, 이 불공평(unfair)한 자료구조는 언제 사용하는 것일까??
대표적인 사용출처는 "인터럽트 처리", "루틴의 복귀", "함수 호출할 때 인수 전달"를 할 때 쓸 수 있다.
어떠한 작업을 할 때 현재의 상황에 우선순위의 작업을 등록하여, 처리하고 복귀할 때 스택만큼 좋은 자료구조는 없기 때문이다.
스택에서 사용되는 연산을 정리하자면,
1. top() : 스택의 맨 위에 있는 데이터 값을 반환
2. push() : 스택에 데이터를 삽입
3. pop() : 스택에서 데이터를 삭제하여 반환
4. isEmpty() : 스택에 원소가 없으면 true, 있으면 false 값을 반환
참고로, 스택과 반대되는 개념은 큐(Queue)이고, 큐는 LIFO가 아닌 FIFO(First In First Out) 구조이다.
'정보처리기술사 > 알고리즘,자료구조' 카테고리의 다른 글
균등한 응답속도를 위한 탐색 트리, B-Tree (0) | 2020.11.29 |
---|---|
기준값으로 분할과 정복을 수행하는 퀵 정렬(Quick Sort) (0) | 2020.09.27 |
버블 정렬(bubble sort) 이해하기 (0) | 2020.09.25 |
First In First Out 자료구조, 큐(Queue) (0) | 2016.09.12 |