棧——後進先出(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佇列 佇列是只允許在表的一端進行插入操作,而在表的另一端進行刪除操作的線性表 棧 佇...