這裡提及一點關于堆棧和隊列,抽象資料類型。
一、堆棧
1、注意這裡的堆棧指的資料結構,而實際上在程式運作的作業系統也必須存在堆棧,例如棧儲存了函數傳回的位址和其他變量的臨時記憶體,例如malloc在堆上配置設定的記憶體。
2、棧是一種先進後出的結構,可以用靜态數組或者動态的連結清單來實作。
3、一種常見的是利用二叉樹的堆,最大值就是根節點,當需要取最大值快點的資料結構可以選擇這種堆。
二、隊列
1、隊列是一種先進先出的資料結構,其實作如果用靜态數組的話比堆棧麻煩點,即采用用一種環狀的數組來實作其功能。
2、判斷其為空的标準是(rear+1)%QUEUE_SIZE==front(這是頭部,它先出),判斷為滿的标準是(rear+2)%QUEUE_SIZE==front.
3、用連結清單結構來實作隊列不存在循環數組的問題,隻需要簡單測試連結清單是否為空就夠了。