首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> 關於C語言

C語言鏈表實現通訊錄:增刪改查清空完整功能

     編輯:關於C語言

資料結構定義

typedef struct phone_book {
    char name[10];
    char sex[5];
    char addr[20];
    int year;
    long phone_num;
    struct phone_book *pNext;
} Book, *pBook;

核心功能函式

  • add_linkman:尾插法新增多筆,支援空鏈表與非空鏈表。
  • remove_linkman:按姓名刪除,處理尾節點與中間節點釋放。
  • traver_linkman:遍歷列印所有節點。
  • empty_linkman:逐個釋放節點記憶體。
  • amend_linkman:按姓名查找並修改所有欄位。
  • search_linkman:按姓名查找單筆顯示。

主選單驅動

void start(pBook *phead) {
    int i = -1;
    while (1) {
        printf("1.新增 2.刪除 3.查找 4.修改 5.顯示 6.清空 0.退出\n");
        scanf("%d", &i);
        switch(i) {
            case 1: *phead = add_linkman(*phead); break;
            case 2: *phead = remove_linkman(*phead); break;
            case 3: search_linkman(*phead); break;
            case 4: *phead = amend_linkman(*phead); break;
            case 5: traver_linkman(*phead); break;
            case 6: empty_linkman(*phead); break;
            case 0: exit(0);
            default: printf("選擇錯誤\n");
        }
    }
}

關鍵實作細節

  1. 頭節點不存資料,head->pNext 指向首筆資料。
  2. malloc 配置新節點,assert 檢查配置成功。
  3. 刪除/修改/查找均使用 strcmp 比對姓名。
  4. empty_linkman 釋放後將前驅 pNext 置 NULL,避免懸空指標。

完整代碼結構

文中提供完整單檔實作,含 main() 呼叫 start(&head),可直接編譯執行。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved