본문 바로가기
전공공부/데이터베이스

51. 스택의 삽입(Push)과 삭제(Pop)

by tiit 2020. 2. 12.
반응형

삽입(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를 발생시킨다.

 

* 스택에 기억되어 있는 자료를 삭제시킬 때는 제일 먼저 삭제할 자료가 있는지 없는지 부터 확인해야 합니다. 

반응형

댓글