使用 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 - 釋放記憶體。
廣告