佇列(二)佇列的鍊錶儲存

2021-07-27 15:00:06 字數 712 閱讀 5115

#include

#define

false

0#define ok 1

//定義佇列每個節點的結構

typedef struct node

node,*qnode;//相當於typedef struct node * qnode;

//定義整個佇列結構

typedef struct squeue

squeue;

//建立乙個空的佇列

void initqueue(squeue *l)

//入佇列

void inqueue(squeue *l, int e)

else

}//出佇列

int outqueue(squeue *l, int *e)

//檢視佇列

void seequeue(squeue l)

free(s);

}int main(void)

定義了乙個佇列結構,front作為頭指標,front->next指向佇列頭,rear指向佇列尾。

一開始除錯一直出錯是在入佇列時忘了對佇列是否為空進行判斷,第乙個元素插入的方法和以後的元素不一樣,第乙個元素需要讓front->next指向它,rear直接指向它。

剛申明的指標要指向null,後面再讓它儲存的位址更改,在windows中指標p指向null相當於p的值為0。

佇列(二) 佇列的鍊錶實現方式

1.佇列的單向鍊錶的實現方法 return只可以返回乙個值,單向迴圈鍊錶來實現佇列的時候可以只保留乙個指標,因為保留rear指標能夠很方便的表示出front指標,所以保留rear指標。另外由於鍊錶的第乙個結點處理比較特殊,所以在初始化的時候需要單獨處理。鍊錶實現的佇列思想也是第乙個單元作為頭結點,不...

佇列(二) 佇列的鍊錶實現方式

1.佇列的單向鍊錶的實現方法 return僅僅能夠返回乙個值,單向迴圈鍊錶來實現佇列的時候能夠僅僅保留乙個指標,由於保留rear指標能夠非常方便的表示出front指標,所以保留rear指標。另外因為鍊錶的第乙個結點處理比較特殊,所以在初始化的時候須要單獨處理。鍊錶實現的佇列思想也是第乙個單元作為頭結...

二 佇列(直線佇列和環形佇列)

佇列是乙個有序列表,可以用陣列或者鍊錶來實現,遵循先入先出的原則。front指向佇列頭的資料前乙個位置,rear指向隊尾元素。利用者兩個變數front及rear分別記錄佇列前後端的下標,front會隨著資料輸出而改變,而rear則是隨著資料輸入而改變。下面利用陣列建立乙個含有三個元素的佇列,及注釋如...