鏈隊列
隊列的鏈式存儲結構簡稱為鏈隊列
注意
增加指向鏈表上的最後一個結點的尾指針
鏈隊列示意圖見上圖
(
void InitQueue(LinkQueue *Q)
{
Q
}
(
intQueueEmpty(LinkQueue *Q)
{
return Q
//實際上只須判斷隊頭指針是否為空即可
}
(
void EnQueue(LinkQueue *Q
{//將元素x插入鏈隊列尾部
QueueNode *p=(QueueNode *)malloc(sizeof(QueueNode));//申請新結點
p
if(QueueEmpty(Q))
Q
else { //x插入非空隊列的尾
Q
Q
}
}
(
DataType DeQueue (LinkQueue *Q)
{
DataType x;
QueueNode *p;
if(QueueEmpty(Q))
Error(
p=Q
x=p
Q
if(Q
Q
free(p); //釋放被刪隊頭結點
return x; //返回原隊頭數據
}
(
DataType QueueFront(LinkQueue *Q)
{
if(QueueEmpty(Q))
Error(
return Q
}
注意
①和鏈棧類似
②在出隊算法中
③以上討論的是無頭結點鏈隊列的基本運算
From:http://tw.wingwit.com/Article/program/sjjg/201311/22680.html