棧和佇列小結

2021-06-16 16:44:41 字數 1140 閱讀 7019

棧和佇列也經常用到:

1、棧(1) 順序棧

常用操作:初始化、入棧、出棧、取得棧頂元素。

上點**:

#define stack_init_size 100  //初始容量

#define stackincrement 10 //容量增量

typedef struct

//sqsatck

status initstack(sqstack &s)  //初始化棧

//initstack

status gettop(sqstack s,selemtype &e)  //取棧頂元素

//gettop

status push(sqstack &s,selemtype e) //入棧

*s.top++=e;

return ok;

}//push

status pop(sqstack s,selemtype &e)  //出棧

//pop

(2)雙向棧(空間共享)

兩個棧共享乙個儲存空間的好處是節省儲存空間,降低上溢發生的概率。

定義方式:#define stacksize 100

typedef structdustack;

(3)鏈棧

定義方式:typedef struct listack;

應用:字首、中綴、字尾表示式

2、佇列

(1)單鏈佇列

定義:typedef struct qnode

qnode,*queueptr;

typedef struct

linkqueue;

(2)迴圈佇列

頭指標(記為q.front):如果佇列不空,則指向當前隊首元素;

佇列空的條件:q.front=q.rear

佇列滿的條件:(q.rear+1)%maxsize=q.front (佇列實際容量 m=maxsize-1)

佇列長度:(q.rear-q.front+maxqsize)%maxsize;

入佇列:q.base[q.rear]=e;

q.rear=(q.rear+1)%maxsize;

出佇列:e=q.base[q.front];

q.front=(q.front+1)%maxsize;

資料結構 棧和佇列小結

1棧 1 棧的定義 棧是限定僅在表尾進行插入和刪除操作的線性表。我們把插入和刪除的一端稱為棧頂 top 另一端稱為棧底 bottom 不包含任何元素的棧稱為空棧。棧又稱為後進先出 last in first out 的線性表,簡稱lifo結構。2 棧的儲存結構 由於棧也是線性表,因此線性表的儲存結構...

棧與佇列今日小結

1 棧 限定僅僅在表尾進行插入和刪除操作的線性表。後進先出 2 佇列 是只允許在一端進行插入操作 而在另一端進行刪除操作的線性表。先進先出 3 最先進棧的元素,不一定是最後出棧。因為順序進棧和出棧順序不一定。4 棧的順序儲存結構,就是申請乙個固定乙個陣列區域,標記位置top 沒有元素時候top 1 ...

棧和佇列 單調佇列 單調棧

講解部落格鏈結 一 單調棧 1 什麼是單調棧?單調棧是指乙個棧內部元素具有嚴格單調性 單調遞增,單調遞減 的一種資料結構。2 單調棧的兩個性質 滿足從棧頂到棧底具有嚴格的單調性 滿足後進先出的特徵,越靠近棧底的元素越早的進棧。3 元素進棧的過程 對於當前進棧元素x 如果x 棧頂元素,x 進棧。否則 ...