전공공부/데이터베이스
51. 스택의 삽입(Push)과 삭제(Pop)
tiit
2020. 2. 12. 16:05
반응형
삽입(Push)
Top = Top + 1 // 스택 포인터(Top)를 1 증가시킨다.
If Top > M Then Overflow // 스택 포인터가 스택의 크기보다 크면 Overflow
Else
X(Top) Item // 그렇지 않으면 Item이 가지고 있는 값을 스택의 Top 위치에 삽입한다.
M : 스택의 크기
Top : 스택 포인터
X : 스택의 이름
Overflow :
스택으로 할당받은 메모리 부분의 마지막 주소가 M번지라고 할 때, Top Pointer의 값이 M보다 커지면 스택의 모든 기억장소가 꽉 채워져 있는 상태이므로 더 이상 자료를 삽입할 수 없어 Overflow를 발생시킨다.
삭제(Pop)
If Top = 0 Then // 스택 포인터가 0이면 스택의 바닥이어서 더 이상 삭제할 자료가 없으므로 Underflow를 처리한다.
Underflow
Else
Item X(Top) // Top 위치에 있는 값을 Item으로 옮기고 스택 포인터를 1 감소 시킨다.
Top = Top - 1
Underflow :
Top Pointer가 주소 0을 가지고 있다면 스택에는 삭제할 자료가 없으므로 Underflow를 발생시킨다.
* 스택에 기억되어 있는 자료를 삭제시킬 때는 제일 먼저 삭제할 자료가 있는지 없는지 부터 확인해야 합니다.
반응형