1 鏈隊定義
佇列的鏈式儲存結構簡稱為鏈佇列,它是限制僅在表頭刪除和表尾插入的單鏈表。顯然僅有單鏈表的頭指標不便於在表尾做插入操作,為此再增加乙個尾指標,指向鍊錶上的最後乙個結點。
typedef
int elemtype;
typedef
struct queue
*queue;
typedef
struct linkqueue
*linkqueue;
2 鏈隊基本操作
判斷佇列是否為空
int
isempty
(linkqueue q)
入隊
第乙個元素進入乙個空隊後,front和rear都指向這個元素,後繼的元素陸續進隊,隊尾入,rear指標始終指向最後乙個進隊的元素。
void
enqueue
(linkqueue q, elemtype e)
出隊
隊頭出,首先進行出隊判空的檢查
void
dequeue
(linkqueue q, elemtype *e)
queue p = q->front->next;
*e = p->data;
q->front->next = p->next;
if(q->rear == p)
free
(p);
}
3 **實現#include
#include
#include
typedef
int elemtype;
typedef
struct queue
*queue;
typedef
struct linkqueue
*linkqueue;
linkqueue initqueue
(void
)int
isempty
(linkqueue q)
void
enqueue
(linkqueue q, elemtype e)
void
dequeue
(linkqueue q, elemtype *e)
queue p = q->front->next;
*e = p->data;
q->front->next = p->next;
if(q->rear == p)
free
(p);
}int
main
(void
)
執行結果:
鏈隊的實現
include using namespace std template class linkqueue linkqueue void enqueue t x void dequeue t getqueuefront void showqueue cout private struct node n...
鏈棧的介紹與實現
鏈棧 採用鏈式儲存的棧稱為鏈棧 在乙個鏈棧中,棧底就是鍊錶的最後乙個結點,而棧頂總是鍊錶的第乙個結點。因此,新入棧的元素即為鍊錶新的第乙個結點,只要系統還有儲存空間,就不會有棧滿的情況發生。鏈棧的優點在於多個棧共享儲存空間和提高其效率,且不存在棧滿上溢的情況,通常採用單鏈表實現,並規定所有操作都是在...
鏈隊操作實現
李德坤 煙台大學計算機與控制工程學院 我自己對鏈隊的理解,鏈隊的front只要不是出隊操作始終指向第乙個進入的元素,而rear隨著元素入隊由指向第乙個進入的元素逐漸後移 指向下乙個元素 當然front隨著元素出隊而逐漸後移 和rear移動方向一樣 例如1 2 1 3 2 1 4 3 2 1 5 4 ...