天天看點

資料結構堆棧和隊列

這裡提及一點關于堆棧和隊列,抽象資料類型。

一、堆棧

1、注意這裡的堆棧指的資料結構,而實際上在程式運作的作業系統也必須存在堆棧,例如棧儲存了函數傳回的位址和其他變量的臨時記憶體,例如malloc在堆上配置設定的記憶體。

2、棧是一種先進後出的結構,可以用靜态數組或者動态的連結清單來實作。

3、一種常見的是利用二叉樹的堆,最大值就是根節點,當需要取最大值快點的資料結構可以選擇這種堆。

二、隊列

1、隊列是一種先進先出的資料結構,其實作如果用靜态數組的話比堆棧麻煩點,即采用用一種環狀的數組來實作其功能。

2、判斷其為空的标準是(rear+1)%QUEUE_SIZE==front(這是頭部,它先出),判斷為滿的标準是(rear+2)%QUEUE_SIZE==front.

3、用連結清單結構來實作隊列不存在循環數組的問題,隻需要簡單測試連結清單是否為空就夠了。

繼續閱讀