佇列的鏈式儲存結構

2021-08-15 06:50:49 字數 3078 閱讀 5628

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