鏈棧的表示
佇列的基本表示及操作
鏈佇列一般線性表
棧邏輯結構:一對一
邏輯結構:一對一
儲存結構:順序表、鍊錶
儲存結構:順序表、鍊錶
運算規則:隨機訪問
運算規則:後進先出(lifo)
adt stack
資料關係:
r1 =
約定an端為棧頂,a1端為棧底。
基本操作
}adt stack
利用一組位址連續的儲存單元依次存放自棧底到棧頂的資料元素。棧底一般在低位址端。
#define maxsize 100
typedef
struct
sqstack;
//構造乙個空棧
status initstack
(sqstack & s)
//若棧為空,返回true;否則返回false
status stackempty
(sqstack s)
/**
1.判斷是否棧滿,
2.元素e壓入棧頂,
3.棧頂指標加1
*/status push
(sqstack &s,selemtype e)
/**
1.判斷是否棧空,
2.取出棧頂元素e,
3.棧頂指標減1
*/status pop
(sqstack &s,selemtype &e)
typedef
struct stacknode stacknode,
*linkstack;
linkstack s;
status push
(linkstack &s,selemtype e)
status pop
(linkstack &s,selemtype &e)
#define maxsize 100
typedef
struct
sqqueue;
status initqueue
(sqqueue &q)
int
queuelength
(qsqueue q)
status enqueue
(sqqueue &q,qelemtype e)
status dequeue
(sqqueue &q,qelemtype &e)
#define maxsize 100
typedef
struct qnodeqnode.
*queueptr;
typedef
struct
linkqueue;
status initqueue(linkqueue &q)
status enqueue(linkqueue &q,qelemtype e)
status dequeue(linkqueue &q,qelemtype &e)
C 棧和佇列 ADT 棧的表示和實現
棧底指標是不動的,插入,刪除都是對棧頂指標進行移動 基本操作的實現 棧的構造,判空,插入,刪除,清空,銷毀,列印 棧的定義 typedef structsqstack 棧的基本操作 操作構造乙個空棧s。initstack s 初始條件 棧s已存在。操作結果 棧s被銷毀。destroystack s ...
棧和佇列的陣列表示
棧和佇列 都是動態集合,且在其上進行delete操作所移除的元素都是預先設定的。在棧 stack 中,被刪除的都是最近插入的元素 棧實現的是一種後進先出的策略。類似的,在佇列中,被刪除的總是在集合中存在時間最長的那個元素 佇列實現的是一種先進先出的策略。在計算機上實現棧和佇列有好幾種有效方式。本文將...
第三章 1 棧和佇列 棧的表示及實現
前言 棧和佇列 是兩種重要的線性結構。從資料結構角度來看,棧和佇列也是線性表,它的特殊性在於其操作是線性表的子集,是操作受限的線性表,因此可以稱作限定性的資料結構。限定性 如 人為的規定線性表只能從表尾插入和刪除結點資料元素,那麼這樣的線性表就是棧 目錄 1 棧 2 棧的應用舉例 3 棧與遞迴的實現...