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

2021-09-08 17:43:28 字數 1143 閱讀 6740

1.佇列的單向鍊錶的實現方法

return僅僅能夠返回乙個值,單向迴圈鍊錶來實現佇列的時候能夠僅僅保留乙個指標,由於保留rear指標能夠非常方便的表示出front指標,所以保留rear指標。

另外因為鍊錶的第乙個結點處理比較特殊,所以在初始化的時候須要單獨處理。鍊錶實現的佇列思想也是第乙個單元作為頭結點,不存放資料,rear指標指向的總是尾結點(在迴圈鍊錶中也就是頭結點的上乙個結點)。

2.實現方法

用帶表頭的單向迴圈鍊錶來實現

#include #include #define null	0

typedef struct sq

elemsn;

elemsn * in_quence(elemsn *rear, int val) /*入隊函式*/

int out_quence(elemsn *rear)

void print_quence(elemsn *rear)

while(p != rear->next);

}elemsn * clear_quence(elemsn *rear)

return p;

}int main()

; int i;

rear = (elemsn *)malloc(sizeof(elemsn)); /*表頭的建立*/

rear->data = null;

rear->next = rear;

for(i = 0; i < 6; i++)

printf("%d is out quence.\n", out_quence(rear)); /*出隊乙個元素*/

print_quence(rear);

printf("\n");

rear = clear_quence(rear);

return 0;

}

程式執行截圖:

注意:使用不帶表頭的迴圈鍊錶也是能夠實現的,可是對於隊列為空時rear指標的值為多少,第乙個結點怎樣插入,以及佇列中僅僅有乙個元素的時候出隊的操作都是須要特殊處理的。這裡就不再詳細實現了,由於帶表頭的鍊錶相對於不帶表頭的鍊錶操作上有相當多的方便之處。

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

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

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

include define false 0 define ok 1 定義佇列每個節點的結構 typedef struct node node,qnode 相當於typedef struct node qnode 定義整個佇列結構 typedef struct squeue squeue 建立乙個空...

佇列判空 (二)佇列的實現

源於生活,抽象生活。生活中的佇列 當然是停車場排隊出場啦。計算機的佇列 簡答的說就是先入先出 fifo 在大腦中要有的概念是 隊頭 狀態 就是排隊第乙個交錢準備出場的車 隊尾 狀態 最後乙個排隊準備交錢的車 入隊 動作 add.把車開入 出停車場的道 出棧 動作 out.交完錢,把車開出停車場。fi...