關於鏈式佇列是否需要頭結點

2021-05-26 01:10:42 字數 684 閱讀 7764

華清遠見嵌入式培訓中心

講師。佇列是一種特殊的線性表,它只允許在表頭進行刪除操作,而在表尾進行插入操作,是一種先進先出的資料結構。

佇列可以採用陣列儲存,也可以採用鏈式儲存。關於鏈式儲存常見的又有兩種:帶頭結點和不帶頭結點。我們建議採用帶頭結點的實現方式,因為,這樣可以大大簡化對佇列的處理。

typedef int datatype;

typedef struct node

listnode, *linknode;

typedef struct

linkqueue;

帶頭結點的鏈隊入隊實現:

void enqueue(linkqueue* q, datatype x)

不帶頭結點的鏈隊入隊實現:

void enqueue(linkqueue* q, datatype x)

q->rear->next = p;

q->rear = p;

}比較上面兩段程式,帶頭結點的鏈隊的入隊操作,只要把新生成的結點加到尾結點後即可。而不帶頭結點的操作則還要注意到邊界操作,假如是第一次入隊,需修改隊頭指標。同樣的道理,對於出隊操作,假如是最後乙個結點出隊,需要注意修改隊尾指標。由此,我們建議鏈式佇列最好採用帶頭結點的實現方式。

android培訓

3g培訓

qt培訓

物聯網培訓

嵌入式學習

關於鏈式佇列是否需要頭結點

華清遠見嵌入式學院 講師。佇列是一種特殊的線性表,它只允許在表頭進行刪除操作,而在表尾進行插入操作,是一種先進先出的資料結構。佇列可以採用陣列儲存,也可以採用鏈式儲存。關於鏈式儲存常見的又有兩種 帶頭結點和不帶頭結點。我們建議採用帶頭結點的實現方式,因為,這樣可以大大簡化對佇列的處理。typedef...

關於鏈式佇列是否需要頭結點

華清遠見嵌入式學院 講師。佇列是一種特殊的線性表,它只允許在表頭進行刪除操作,而在表尾進行插入操作,是一種先進先出的資料結構。佇列可以採用陣列儲存,也可以採用鏈式儲存。關於鏈式儲存常見的又有兩種 帶頭結點和不帶頭結點。我們建議採用帶頭結點的實現方式,因為,這樣可以大大簡化對佇列的處理。typedef...

鏈式佇列 帶頭結點

鏈式佇列 無頭結點 注意事項 帶頭結點的鏈式佇列在出佇列時,出最後乙個元素的與出其它元素不同,出非最後乙個元素,隊尾指標不變,一直指向第乙個元素,當出最後乙個元素時,隊尾指標改變指向隊頭 也就是指向頭結點 認真看看這裡 這個例子並沒看到帶頭結點方便 編譯環境 vs2008 queue h pragm...