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

鏈表的 C 語言實現(三):單鏈表查找操作

     編輯:C 語言基礎

單鏈表基本運算:查找

查找邏輯:從表頭開始依序掃描節點,比較資料域是否為目標值。找到返回節點指標,否則返回 NULL。

只要知道表頭指標,即可透過 link 域遍歷整個鏈表。

查找函數實作

stud *search(stud *h, char *x) {
    stud *p;       // 當前掃描指標
    char *y;       // 暫存姓名指標
    
    p = h->link;   // 從第一個實際節點開始(跳過表頭)
    while (p != NULL) {
        y = p->name;
        if (strcmp(y, x) == 0)  // 字符串比較,相等返回 0
            return p;           // 找到,返回節點指標
        else
            p = p->link;        // 移至下一節點
    }
    if (p == NULL)
        printf("沒有找到該資料!\n");
    return NULL;  // 隱式返回
}

主程式調用範例

int main() {
    int number = N;
    char fullname[20];
    stud *head, *searchpoint;
    
    head = creat(number);           // 建立鏈表
    printf("請輸入要查找的姓名: ");
    scanf("%s", fullname);
    searchpoint = search(head, fullname); // 查找
    
    if (searchpoint)
        printf("找到: %s\n", searchpoint->name);
    return 0;
}

關鍵點

  • 使用 strcmp 比較字符串(需 #include <string.h>)
  • 從 h->link 開始遍歷,跳過不存資料的表頭節點
  • 返回找到節點的指標,便於後續插入、刪除操作
  • 未找到時返回 NULL 並提示
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved