1.定義
佇列的鏈式儲存結構,其實就是線性表的單鏈表,只不過它只能尾進頭出而已,我們把它簡稱為鏈佇列。
隊頭指標指向鏈佇列的頭結點,隊尾指標指向終端結點。
空佇列時,front和rear都指向頭結點
2.入隊操作
= e;//把插入的資料賦值給插入的結點的資料域
s->next =
null;//插入結點的指標域為空
q->rear->next = s;//將兩個結點連線起來,
q->rear = s;//隊尾指標移到新插入結點的位置
return success;
}3.出隊操作
p = q->front->next;//將欲刪除的隊頭結點暫存給p
*e = q->front->next->
data;//將欲刪除的隊頭結點的值賦值給e
if(q->rear == q->front->next)//若隊頭是隊尾,則刪除後將rear指向頭結點
q->front->next = q->front->next->next;//將原隊頭結點的後繼賦值給頭結點後繼
free(p);//刪除隊頭結點
return success;
}標頭檔案:
#ifndef _linkquene_h_
#define _linkquene_h_
#define success 0
#define failure -1
struct node
;typedef struct node node;
struct quene
;typedef struct quene linkquene;
int queneinit(linkquene *q);//鏈佇列初始化
int queneenter(linkquene *q, int e);//進佇列
int quenelength(linkquene *q);//求佇列的長度
int quenedelete(linkquene *q, int *e);//出佇列
int quenedestroy(linkquene *q);//銷毀佇列
#endif
主函式:
#include
#include "linkquene.h"
int main()
else
for(i = 0; i < 5; i++)
else}}
ret = quenelength(&q);
printf("the length is %d\n", ret);
for(i = 0; i < 3; i++)
else
}ret = quenelength(&q);
printf("the length is %d\n", ret);
ret = quenedestroy(&q);
if(ret == success)
else
ret = quenelength(&q);
printf("the length is %d\n", ret);
return
0;}
函式介面:
#include
#include
#include
"linkquene.h"
int queneinit(linkquene *q)
q->front = p;
q->rear = p;
p->next =
null;
return success;
}int queneenter(linkquene *q, int e)
s->
data
= e;
s->next =
null;
q->rear->next = s;
q->rear = s;
return success;
}int quenelength(linkquene *q)
return length;
}int quenedelete(linkquene *q, int *e)
node *p = (node *)malloc(sizeof(node));
if(p ==
null)
p = q->front->next;
*e = q->front->next->
data;
if(q->rear == q->front->next)
q->front->next = q->front->next->next;
free(p);
return success;
}int quenedestroy(linkquene *q)
free(q->front);
q->front =
null;
q->rear =
null;
return success;
}
佇列的鏈式儲存結構
佇列的鏈式儲存結構可以建立乙個頭結點,乙個指向頭結點的指標front,乙個指向尾節點的指標rear。新增乙個節點的時候將rear指向新節點,取乙個節點的時候將front指向下個節點的下乙個節點。佇列鏈式儲存.cpp 定義控制台應用程式的入口點。include stdafx.h struct link...
佇列的鏈式儲存結構
1 佇列的鏈式儲存結構,其實就是線性表的單鏈表,只不過它只能尾進頭出而已,簡稱為鏈佇列。為了操作上的方便,我們將隊頭指標指向鏈佇列的頭結點,而隊尾指標指向終端結點。空佇列時,front和rear都指向頭結點。鏈佇列的結構為 include using namespace std define ok ...
佇列的鏈式儲存結構
佇列的鏈式儲存結構,其實就是線性表的單鏈表,只不過它只能尾進頭出而已,我們把它簡稱為鏈佇列。為了操作上的方便,我們將隊頭指標指向鏈佇列的頭結點,而隊尾指標指向終端結點,如下圖所示 空佇列時,front和rear都指向頭結點。鏈佇列的結構為 typedef int qelemtype typedef ...