第四章 棧與佇列

2021-07-30 13:33:09 字數 867 閱讀 8094

adt(abstract data type) 棧(stack)

data

同線性表,元素具有相同的型別,相鄰元素具有前驅和後繼關係。

operation

initstack(*s):初始化操作,建立乙個空棧s。

destroy(*s):若棧存在,則銷毀它

clearstack(*s):將棧清空

stackempty(*s):若棧為空,返回true,否則返回false

gettop(*s):若棧存在且非空,用e返回s的棧頂元素

push(*s,e):若棧s存在,插入新元素e到棧s中並稱為棧頂元素

pop(*s,*e):刪除棧s中棧頂元素,並用e返回其值

stacklength(s):返回s中的元素個數

endadt

adt(abstract data type) 佇列(queue)

data

同線性表,元素具有相同的型別,相鄰元素具有前驅和後繼關係。

operation

initqueue(*q):初始化操作,建立乙個空佇列q。

destroy(*q):若佇列q存在,則銷毀它

clearqueue(*q):將佇列清空

queueempty(*q):若隊列為空,返回true,否則返回false

gethead(*q):若佇列存在且非空,用e返回佇列q的隊頭元素

enqueue(*q,e):若佇列q存在,插入新元素e到佇列q中並稱為隊尾元素

dequeue(*q,*e):刪除佇列q中隊頭元素,並用e返回其值

queuelength(q):返回q中的元素個數

endadt

第四章 佇列

佇列是任務間通訊的主要形式。它們可用於在任務之間以及中斷和任務之間傳送訊息。在大多數情況下,它們被用作執行緒安全fifo 先進先出 緩衝區。uint8 t fifomessage 10 hello queuehandle t tmpqueuehandle 第一步 建立佇列 tmpqueuehandl...

(資料結構)第四章 棧與佇列

許多程式語言本身就是建立在棧結構之上的,其實時運算環境都是基於棧結構的虛擬機器。相對於向量和列表,棧與佇列的外部介面更為簡化和緊湊。棧的應用主要為 結合函式呼叫棧的機制介紹一般函式呼叫的實現方式與過程,並將其推廣至遞迴呼叫。然後以降低空間複雜度的目標為線索,介紹通過顯示地維護棧結構解決應用問題的典型...

第四章棧(1)

function stack function push element function pop function peek function length function clear function isempty else 測試stack類的實現 let s new stack s.pus...