建立單連結串列(尾插法)

*木魚*發表於2020-12-06

建立單連結串列有兩種方法,
這裡採用頭插法。

尾插法含義:
該方法是從一個空表開始,讀取陣列的元素,生成新節點,將讀取的資料放到存放在新節點的資料域中,然後將該節點插入到連結串列的表頭上,直到結束為止。
由於:頭插法會讓順序與陣列原順序相反,所以這裡要定義一個尾指標r 才可讓順序不變。

思路:(尾插法)
1.先建立一個頭結點,r始終指向尾結點,開始時指向頭結點
2.通過迴圈讀取陣列的元素,生成新節點
其中,第一,資料域賦值 第二,指標域更換
意思為:將新生成的結點插入頭結點後
需要定義: 一個指標s指向新生成的結點,一個指標r指向尾結點。定義迴圈變數i
3,最後將尾結點置為空 r->next = null;

C程式碼實現:

void  CreateListF(Linklist * L,int a[], int n){
        Linklist * s,*r;  int i;
        L = (Linklist)malloc(sizeof(Linklist)); //建立頭結點
        r = L;   //r始終指向尾結點,開始時指向頭結點
        for(int i = 0; i < n; i++){
            s = (Linklist)malloc(sizeof(Linklist));
            s->data = a[i];
            r->next = s;
            r = s;
        }
        r->next = null; //尾結點置為空
}

相關文章