堆疊的動作:PUSH(加入)
【演算法】
Procedure Push(item, Stack)
Begin
if (Top= N-1) //如果Top指標指到堆疊頂端
Stack Is Full; //代表堆疊已滿
Else //如果不是,則
{
Top=Top+1; //指標位址加1
Stack[Top]=item;
//再將資料加入到指標所在的堆疊中
}
End
End Procedure
堆疊的動作:POP(取出)
【演算法】
Procedure Pop(item, Stack)
Begin
if (Top=-1) //如果Top指標為-1
Stack Is Empty; //代表Stack為空
else //否則
{
item=Stack[Top]; //將資料從堆疊頂端取出
Top=Top-1; //再將指標位址減1
}
End
End Procedure
堆疊的應用
1.副程式呼叫與返回
2.遞迴程式呼叫與返回
3.運算式之轉換與求值
4.中斷處理
5.二元樹追蹤
6.巨集呼叫
7.多元處理
8.圈形(Graph)的深度搜尋
9.資料反序輸出(例如:abc-cba)
10.自助餐廳取餐盤的行為。
堆疊的呼叫過程
在電腦中,我們可以利用堆疊具有後進先出的特性,來解決副程式的呼叫。
【作法】呼叫副程式時,必須先將返回位址暫時儲存到「堆疊」中。