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

C語言鏈結串列實作:循環與雙向鏈結串列詳解

     編輯:C 語言基礎

循環鏈結串列

最後一個節點的指標指向第一個節點(或表頭節點),形成環狀結構。操作與單向鏈結串列類似,差異在於:

  1. 建立時將尾節點指向表頭,而非 NULL
  2. 判斷表尾:檢查 node->next == head,而非 NULL

雙向鏈結串列

每個節點包含兩個指標:

  • rlink(右鏈/後驅指標)
  • llink(左鏈/前驅指標)

結構定義:

typedef struct node {
    int data;
    struct node *llink, *rlink;
} JD;

可構建雙向循環鏈結串列(首尾相連)。支援查找、插入、刪除三大基本運算,雙向特性使前驅操作無需從表頭遍歷。

雙向循環鏈結串列查找範例

stud *search(stud *h, char *x) {
    stud *p = h->rlink;
    while (p != h) {
        if (strcmp(p->name, x) == 0)
            return p;
        p = p->rlink;
    }
    printf("Not found\n");
    return NULL;
}

從表頭後驅開始遍歷,直到回到表頭。展示雙向循環結構的典型遍歷模式。

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