佇列的鏈式表示

2022-08-23 08:12:17 字數 2283 閱讀 1744

佇列是和棧相反的一中線性結構,棧的後進先出lifo結構,而佇列是先進先出fifo結構。它只允許在表的一端進行插入,而在另一端進行刪除。

1/**

2和棧相反,佇列是一種先進先出fifo的結構,包括隊頭front,隊尾rear

3使用鏈式結構表示佇列時,分別乙個頭指標和尾指標。為操作方便,鏈佇列也有乙個頭結點,則空的佇列的判斷條件就是

4頭指標和尾指標都指向頭結點5*/

6 #include 7 #include 89//

*************************單鏈佇列的儲存結構**********************************

10 typedef struct

qnode

11qnode,*queneptr;

15 typedef struct

16linkquene;

2021

//**************************基本操作演算法說明************************************

2223

//***************************構造乙個空佇列*************************************

24void initquene(linkquene &q)

2534 q.rear =q.front;

35 q.front ->next =null;36}

37//

*****************************輸出佇列元素*************************************

38void

printquene(linkquene q)

3946 qnode *p = q.front->next;//

另p指向第乙個資料元素

47while(p->next)

4852

//輸出隊尾資料

53 printf("

%d\n

",q.rear->data);54}

5556

57//

*******************************銷毀佇列**************************************

58void destroyquene(linkquene &q)

5967}68

69//

********************************佇列的資料元素插入*****************************

70void enquene(linkquene &q,int

e)71

80 p -> data =e;

81 p -> next =null;

82//

插入p結點

83 q.rear ->next =p;

84 q.rear =p;85}

8687

//*******************************佇列資料元素的刪除********************************

88void dequene(linkquene &q)

8997

98 queneptr p = q.front ->next;

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

100if (q.rear ==p)

101105

free(p);

106}

107108

109int

main()

110126 printf("

當前佇列的元素為:");

127printquene(q);

128129

//插入佇列尾元素

130 printf("

請輸入插入值:");

131 scanf("

%d",&value);

132enquene(q,value);

133 printf("

插入後佇列的元素為:");

134printquene(q);

135136

//刪除佇列頭元素

137dequene(q);

138 printf("

刪除後佇列的元素為:");

139printquene(q);

140return0;

141 }

佇列的鏈式表示

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

鏈式結構表示佇列

define qdatatype int typedef struct qlistnode qnode 佇列的結構 typedef struct queue queue 初始化佇列 void queueinit queue q 隊尾入佇列 void queuepush queue q,qdataty...

鏈式佇列的表示和實現

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