堆疊(Stack)

作者:陳雲飛&許文達&夏進

堆疊(Stack)

只允許資料在單一位置端增加或減少。如把書本由桌面一個一個向上疊放,取用時由最上面一個向下拿取,這種觀念為堆疊(Stack)。在堆疊中增加資料稱為推進(Push),刪除資料稱為移出(Pop)。「堆疊」的資料結構使用很廣泛,如主副程式間訊息傳送、CPU中斷處理。堆疊結構有下列特性:

(1)堆疊只有一個出口

資料的存入或取出都須經過此出入口。

(2)每次存或取資料的位置

都是從當時所有堆疊資料的最上層開始。

(3)「堆疊」表示資料存取的順序

為先進後出(First In Last Out,FILO);或稱為後進先出(Last In First Out,LIFO)。

佇列(Queue):

佇列結構是一個有序串列(Order List),所有的加入與刪除發生在串列的二端,資料由一端增加,由另一端移出。加入的稱為尾端(Rear),刪除的一端稱為前端(Front),具有先進先出(First In First Out,FIFO)的特色,這種觀念稱為佇列(Queue)。如果佇列雙向均可以進出資料,稱為雙佇列。

因為佇列具有先進先出的特性,因此所有的刪除或加入動作必須在不同的兩端進行。佇列結構在電腦上的應用也相當廣泛,例如:CPU的工作排程採用佇列,也就是先到先做的方式。

佇列結構有下列性質:

(1)佇列有

一個入口及一個出口。

(2)新的資料由

末端加入而由前端移出資料,資料存取順序為先進先出。

(3)佇列觀念常用在

計算機作業系統方面的應用,如列印、讀卡、緩衝區程式等等,大都採用先到先做的佇列觀念。

AddThis Sharing

百科問與答

暫無討論