/*
佇列的鏈式表示和實現 (帶頭結點的鏈式佇列)
*/#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使用鏈式結構表示佇列時,分別乙個頭指標和尾指標。為操作方便,鏈佇列也有乙個頭結點...