棧與佇列 第10章 基本資料結構

2021-08-13 19:29:44 字數 1044 閱讀 1484

棧——後進先出(last-in, first-out, lifo)

佇列——先進先出(first-in, first-out, fifo)

壓入(push)

無元素引數的delete——pop

s.top 不包含任何元素時,棧為空的。查詢棧是否為空時,用查詢操作 stack-empty。

對空棧執行彈出操作稱為下溢(underflow),s.top超過了n,則稱為上溢(overflow)

stack

-empty(s)

if s.top ==

0return

true

else

return

false

push(s,x)

s.top = s.top + 1

s[s.top] = x

pop(s,x)

ifstack

-empty(s)

error "underflow"

else s.top = s.top -

1return s[s.top +1]

以上三種操作執行時間都為o(1)

insert——enqueue

delete——dequeue

q.head 指向隊頭元素

q.tail 指向下乙個元素將要插入的位置

初始時 q.head = q.tail = 1

空佇列中刪除乙個元素,發生下溢

q.head = q.tail + 1時,佇列已滿,若從佇列中增添乙個元素,發生上溢

enqueue(q,x)

if (q.head == q.tail + 1)

error "overflow"

else

dequeue(q)

if (q.head == q.tail)

error "underflow"

else

演算法導論第10章 基本資料結構 10 1棧和佇列

1 棧實現了後進先出操作。在棧的陣列實現中,棧頂指標指向棧頂元素,插入時先修改指標再插入,刪除時先取棧頂元素再修改指標。當top s 0時,棧中空的。2 陣列棧的結構 int top 棧頂指標 int s 指向棧陣列 3 在棧上實現的操作 stack empty s 判斷棧是否為空 push s,x...

基本資料結構 表 棧和佇列

1 棧 後進先出 的兩種實現方式 指標和表 用指標方式實現棧的基本操作 createstack void h檔案 ifndef stack h struct node struct node typedef struct node ptrtonode typedef ptrtonode stack ...

《大話資料結構》第4章 棧與佇列

棧與佇列 棧 佇列都是特殊的線性表 受限表 只不過對插入和刪除操作做了限制 沒有修改操作 這些操作只能限制在表的一端 what棧 棧是限定僅在表尾 這裡的表尾是指棧頂,而不是棧底 進行插入和刪除操作的線性表 what佇列 佇列是只允許在表的一端進行插入操作,而在表的另一端進行刪除操作的線性表 棧 佇...