線性鏈表的創建 C語言

我認爲線性鏈表的創建主要需要以下幾種:

1.需要一個結構體:有兩部分組成,一部分用來表示節點的各個屬性,另一部分是指針,用來指向下一個節點,只有這樣才能構成線性;

2.定義一個頭指針(head):用來保存鏈表的首地址,有了首地址就可以找到其他節點;

3.分別定義一個動態指針 p 和 q :主要用在鏈表創建 時期,p用來指向新創建的節點,q 用來指向上一個節點,通過q和p的連接來使鏈表連接;

下面是代碼實現:

int <stdio.h>

struct  lianbiao

{

      int    shuxing;          //這裏是鏈表的屬性區,當然可以有多個;

      lianbiao  *next;        //這裏就是鏈表連接的關鍵了,它就好比火車每個車廂之間連接的部分

}*head=NULL,  *p,   *q;

int   main()

{

      int  i;

      int  n;

      scanf("%d",&n);

      for(i=1;i<=n;i++)                     //這裏主要控制創建的鏈表的長度,長度爲 n

      {

            p=new(struct   lianbiao);       //這裏申請一個空節點

            p.shuxing =  i ;                  //我就把它的創建順序當做它的屬性了

            p.next = NULL ;                // 我習慣在創建一個節點的同時先把它屬性什麼的填完整,當然之後也可以

            if(head == NULL)                //這裏就是判斷申請的是不是第一個節點,第一個節點需要與 head 連接

                 head = p;

            else   q.next = p;                 //這裏就是鏈表連接的關鍵了

            q = p;                                    // q 是跟着 p 走的

       }

}

好了,到這裏鏈表就已經創建好了

這裏創建的鏈表功能比較少,只能一些簡單的操作,功能的多少主要看節點的屬性的多少,當然結構體內的指針變量越多功能也就越多,這裏只有一個

指向下一個節點的指針,你也可以添加一個指向上一個節點的指針 ( lianbiao  *last  ),這樣就構成了雙向鏈表,雙向鏈表的靈活性更加強。

發佈了29 篇原創文章 · 獲贊 39 · 訪問量 10萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章