鏈佇列採用帶頭結點的鍊錶,隊頭指標始終指向頭結點,隊尾指標始終指向最後乙個元素
當隊列為空時:隊頭指標和隊尾指標均指向頭結點
鏈佇列不會滿!!!
鏈佇列的定義:
2.定義鏈佇列結構體:分別儲存兩個結點指標,隊頭指標和隊尾指標
typedef char datatype;typedef struct nodelinkqueuenode;
typedef struct queuelinkqueue;
鏈佇列的初始化
隊頭指標和隊尾指標相等且均為空
bool initqueue(linkqueue* q)else
}
入隊:
記得隊尾的元素的next域為空
bool enterqueue(linkqueue* q,datatype x)else
return false;}
出對
1.刪除操作之間要判斷是否為空
2.要根據刪除操作之後是否為空來決定隊尾指標是否等於隊頭指標
bool deltequeue(linkqueue* q,datatype* x)}
可以這樣理解:1.判斷是否為空
2.使p=front-》next
3.賦值給x
4.使p出對:
q->front->next=p->next;5.判斷p出對之後是否為空
若為空:隊尾指標等於隊頭指標
若不為空:不做處理
6.釋放p
資料結構(二)之順序佇列與鏈佇列
運用陣列結構來構建的線性佇列就是順序佇列。本例實現了順序佇列的入隊 出隊 判斷隊空 初始化佇列 列印佇列等操作。includeusing namespace std const int m 1000 struct queue void enqueue queue q,int x int delque...
資料結構 鏈佇列
佇列沒完全看懂 include include define datatype int 定義節點結構 typedef struct nodequeuenode 定義頭節點 typedef structlinkqueue 初始化鏈佇列,頭節點置空 void initqueue linkqueue q ...
資料結構 鏈佇列
課程實驗,多有不足 include include include define true 1 define false 0 define ok 1 define error 0 typedef int queueelementtype typedef struct node linkqueueno...