#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則是隨著資料輸入而改變。下面利用陣列建立乙個含有三個元素的佇列,及注釋如...