p130 棧和佇列

2021-07-10 02:20:35 字數 1641 閱讀 5292

兩個程式的功能都是輸入0就出棧(出佇列),輸入1就是入棧(入佇列),輸入-1結束

棧:

/*

* stack.c

* * created on: feb 22, 2016

* author: wing

*//*

* stack.c

* * created on: feb 22, 2016

* author: wing

*/#include#include#define max 10

struct stack;

int pop(struct stack *s)

else }

int push(struct stack *s)

else }

int main(void)

scanf("%d",&n);

} return 0;

}

用鍊錶來實現就是:

/*

* stack.c

* * created on: feb 22, 2016

* author: wing

*/#include#includestruct node;

int pop(struct node **s)

else

else

return 0; }}

int push(struct node **s)

int main(void)

scanf("%d",&n);

} return 0;

}

佇列,為了方便判斷佇列上溢和下溢,這裡引入了乙個q->n(佇列元素個數),另外採用取餘操作方便一些:

/*

* queue.c

* * created on: feb 22, 2016

* author: wing

*/#include#include#define max 5

struct queue;

int deque(struct queue *q)

else }

int enque(struct queue *q)

else }

int main(void)

scanf("%d",&n);

} return 0;

}

同樣的,用鍊錶來實現就是:

/*

* queue.c

* * created on: feb 22, 2016

* author: wing

*/#include#includestruct node;

struct queue;

int deque(struct queue *q)

else

if (q->head->next==null)

else }

int enque(struct queue *q)

else }

int main(void)

scanf("%d",&n);

} return 0;

}

p33鏈結的棧和佇列

一 鏈棧的定義與運算 鏈棧 即鏈結堆疊 是棧的鏈結儲存表示,或者說它是只允許在表頭進行插入和刪除運算的單鏈表,此時單鏈表的表頭指標叫做棧頂指標。乙個鏈棧的示意圖如下圖所示,其中hs 表示棧頂指標。設 hs的型別為 linklist 指標型別 資料元素 x的型別為 elemtype,則在以hs 為棧頂...

棧和佇列 單調佇列 單調棧

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

棧和佇列 佇列

佇列 又一種特殊的線性表 佇列 queue 是只允許在一端進行插入,而在另一端進行刪除的運算受限的線性表 允許刪除的一端稱為隊頭 front 允許插入的一端稱為隊尾 rear 當佇列中沒有元素時稱為空佇列。佇列的修改是依先進先出的原則進行的。新來的成員總是加入隊尾 即不允許 加塞 每次離開的成員總是...