[Algorithm] 스택(Stack)이란 무엇인가?
- ETC./Algorithm
- 2018. 8. 23.
스택의 개념
1. 스택은 리스트의 한쪽 끝으로만 자료의 삽입, 삭제 작업이 이루어지는 자료구조이다.
2. 스택은 가장 나중에 삽입된 자료가 가장 먼저 삭제되는 후입선출(LIFO)방식으로 자료를 처리한다.
Overflow : 스택으로 할당받은 메모리 부분의 마지막 주소가 M번지라고 할 때, Top Pointer의 값이 M보다 커지면 스택의 모든 기억장소가 꽉 채워져 있는 상태이므로 더 이상 자료를 삽입할 수 없어 Overflow를 발생시킨다.
Underflow : Top Pointer가 주소 0을 가지고 있다면 스택에는 삭제할 자료가 없으므로 Underflow를 발생시킨다.
※ Stack에 기억되어 있는 자료를 삭제시킬 때는 제일 먼저 삭제할 자료가 있는지 없는지부터 확인해야 한다.
Stack의 응용분야
1. 부 프로그램 호출 시 복귀주소를 저장할때
2. 함수의 호출순서 제어
3. 인터럽트가 발생하여 복귀주소를 저장할 때
4. 후위 표기법(Postfix Notation)으로 표현된 수식을 연산할 때
5. 0주소지정방식 명령어의 자료 저장소
6. 재귀(Recursive)프로그램의 순서 제어
7. 컴파일러를 이용한 언어 번역
'ETC. > Algorithm' 카테고리의 다른 글
[Algorithm] 트리(Tree)구조란 무엇인가? (0) | 2018.08.25 |
---|---|
[Algorithm] 큐(Queue)와 데크(Deque)에 대해서 (0) | 2018.08.24 |
[Algorithm] ArrayList와 LinkedList란 무엇인가? (0) | 2018.08.22 |
[Algorithm] 자료구조란 무엇인가? (1) | 2018.08.21 |