使用 C 語言刪除連結串列的頭節點和尾節點的邏輯。


連結串列使用動態記憶體分配,即它們會根據需要增長和縮小。它是由節點組成的集合。

節點有兩個部分,分別是資料和連結。下面將解釋這些部分。

連結串列上的操作

連結串列上有三種操作,如下所示:

  • 插入
  • 刪除
  • 遍歷

刪除

  • 識別節點。
  • 調整連結,以便節點的釋放不會使列表成為不連貫的元件。
  • 返回/顯示要刪除的元素。
  • 釋放記憶體。

刪除頭節點

請按照以下步驟在 C 程式語言中刪除頭節點。

1. void del_head()
2. {
3. int x;
   Node *temp;
4. if(Head==NULL)
5. {
6. printf("List is empty");
7. return;
8. }
9. x=Head->ele;
10. temp=Head;
11. if(Head==Tail)
12. Head=Tail=NULL:
13. Else
14. Head=Head->next;
15. printf("Deleted element %d",x);
16. free(temp);
17. }

這裡,

步驟 4 - 檢查列表是否為空。

步驟 9 - 讀取要刪除的元素。

步驟 10 - 頭節點由 temp 指標引用。

步驟 11 - 檢查是否為最後一次刪除。

步驟 14 - 將頭指標移動到列表中的下一個元素。

步驟 15 - 顯示要刪除的元素。

步驟 16 - 釋放記憶體。

刪除尾節點

請按照以下步驟在 C 程式語言中刪除尾節點。

1. void del_tail()
2. {
3. int x;
4. Node *temp;
5. if(Head==NULL)
6. {
7. printf("List is empty");
8. return;
9. }
10. temp=Head;
11. while(temp->next !=Tail)
12. temp=temp->next;
13. x=Tail->ele;
14. Tail=temp;
15. Temp=temp->next
16. Tail->next=NULL;
17. printf("Deleted element %d",x);
18. free(temp);
19. }

這裡,

步驟 4 - 檢查列表是否為空。

步驟 10、11、12 - 將 temp 指標移動到列表中倒數第二個節點。

步驟 13 - 讀取要刪除的尾節點元素。

步驟 14 - 將尾指標移動到倒數第二個節點。

步驟 15 - 將 temp 指標移動到列表的最後一個節點。

步驟 16 - 刪除尾節點到 temp 節點的引用。

步驟 17 - 顯示要刪除的元素。

步驟 18 - 釋放記憶體。

更新於: 2021年3月25日

423 次檢視

開啟你的職業生涯

透過完成課程獲得認證

開始學習
廣告