佇列的鏈式表示和實現

2021-07-12 01:07:40 字數 1027 閱讀 8286

/*

佇列的鏈式表示和實現 (帶頭結點的鏈式佇列)

*/#include//定義

typedef struct qnodeqnode,*queueptr;

typedef structlinkqueue;

/*初始化:

演算法思想:生成乙個頭結點,是隊頭指標和隊尾指標都指向該頭結點,

並將頭結點的指標域置空。

*/ int initqueue(linkqueue &q)

q.front->next=null;

return 1; }/*

入隊操作:

演算法思想:首先為入隊的元素分配乙個新的結點,將新元素插入到隊尾;

並修改隊尾指標的值.

*/ int enqueue(linkqueue &q,int e)

s->data=e;

s->next=null;

q.rear->next=s;

q.rear=s;//修改尾指標

return 1;}/*

鏈隊出隊演算法:

首先判斷佇列是否為空,若空返回0;否則取出q的隊頭元素,用

e返回其值,修改指標。另外考慮當佇列的最後乙個元素被刪除時,佇列的尾指標就

消失了需要修改尾指標,讓其指揮頭結點.

*/int dequeue(linkqueue &q,int &e)

p=q.front->next;//指標p指向佇列的第乙個元素

e=p->data;

q.front->next=p->next;

if(q.rear==p)

delete p;

return 1;

}int main()else

int n;

printf("請輸入入隊元素的個數:");

scanf("%d",&n);

for(int i=0;iint e;

dequeue(q,e);

printf("隊頭元素:%d",e);

}

鏈式佇列的表示和實現

2014年4月19日 鏈式佇列的實現 用頭結點來儲存鍊錶長度 儲存格式 儲存結構和單鏈表一樣 queue data next data next data next data 0 head node node 0 node 1 end node include include include inc...

佇列的鏈式表示

主題 佇列的鏈式表示 開發環境 visual studio 開發語言 c include include include typedef int elemtype typedef enum boolean 結點 typedef struct qnode qnode,pqnode 佇列 typedef...

佇列的鏈式表示

佇列是和棧相反的一中線性結構,棧的後進先出lifo結構,而佇列是先進先出fifo結構。它只允許在表的一端進行插入,而在另一端進行刪除。1 2和棧相反,佇列是一種先進先出fifo的結構,包括隊頭front,隊尾rear 3使用鏈式結構表示佇列時,分別乙個頭指標和尾指標。為操作方便,鏈佇列也有乙個頭結點...