鏈隊的介紹與實現

2021-10-08 14:04:49 字數 1640 閱讀 2033

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 ...