iT邦幫忙

2024 iThome 鐵人賽

DAY 22
0
自我挑戰組

資料結構面面觀系列 第 24

堆疊範例與程式碼

  • 分享至 

  • xImage
  •  

堆疊的動作:PUSH(加入)

  1. 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(取出)

  1. 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.自助餐廳取餐盤的行為。

堆疊的呼叫過程

在電腦中,我們可以利用堆疊具有後進先出的特性,來解決副程式的呼叫。

【作法】呼叫副程式時,必須先將返回位址暫時儲存到「堆疊」中。


上一篇
堆疊介紹
系列文
資料結構面面觀24
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言