Guest User

Untitled

a guest
Dec 11th, 2017
73
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.98 KB | None | 0 0
  1. /* 程式範例: deleteNode.c */
  2. /* 函數: 刪除節點 */
  3. int deleteNode(List ptr) {
  4. List current = first; /* 指向前一節點 */
  5. int value = ptr->data; /* 取得刪除的節點值 */
  6. if ( isListEmpty() ) /* 檢查串列是否是空的 */
  7. return -1;
  8. if (ptr==first || ptr==NULL) {/* 串列開始或NULL */
  9. /* 情況1: 刪除第一個節點 */
  10. first = first->next; /* 刪除第1個節點 */
  11. } else {
  12. while (current->next!=ptr) /* 找節點ptr的前節點 */
  13. current = current->next;
  14. if ( ptr->next == NULL ) /* 是否是串列結束 */
  15. /* 情況2: 刪除最後一個節點 */
  16. current->next = ptr->next; /* 刪除最後一個節點 */
  17. else
  18. /* 情況3: 刪除中間節點 */
  19. current->next = ptr->next; /* 刪除中間節點 */
  20. }
  21. free(ptr); /* 釋放節點記憶體 */
  22. return value; /* 傳回刪除的節點值 */
  23. }
Add Comment
Please, Sign In to add comment