尾插法構建雙鏈表並遍歷 C語言

2021-10-09 09:58:42 字數 1414 閱讀 7776

前言

雙鏈表是指,不光有字尾指標,還有字首指標,需要注意的是,要與雙向迴圈鍊錶區別,在雙鏈表中,表頭結點的字首指向null,表尾結點的字尾指向null;

雙鏈表的定義

typedef

struct dnodednode,

*dnodelinkedlist;

雙鏈表的構造(尾插法)
//構造雙鏈表

dnodelinkedlist dl =

(dnodelinkedlist)

malloc

(sizeof

(dnode));

dl->prior =

null

; dnode *s,

*r = dl;

int input_data;

scanf

("%d"

,&input_data)

;while

(input_data!=

-999

) r-

>next =

null

;

遍歷
// 從前向後遍歷

printf

("從前向後遍歷 ");

dnode *p = dl;

while

(p->next!=

null

)// 從尾部向前遍歷

printf

("尾部向前遍歷 ");

dnode *q = r;

printf

("%d "

,q->data)

;while

(q->prior!=dl)

完整程式
#include

#include

typedef

struct dnodednode,

*dnodelinkedlist;

intmain()

r->next =

null

;// 從前向後遍歷

printf

("從前向後遍歷 ");

dnode *p = dl;

while

(p->next!=

null

)// 從尾部向前遍歷

printf

("尾部向前遍歷 ");

dnode *q = r;

printf

("%d "

,q->data)

;while

(q->prior!=dl)

return0;

}

執行結果

建立雙鏈表(尾插法)

雙鏈表儲存結構 要建立雙鏈表,首先要明白雙鏈表的儲存結構定義 typedef struct dlinklist思想 該方法是將新節點插入雙鏈表的表尾,為此增加乙個尾指標r.使其始終指向當前鍊錶的尾結點 思路 1.建立頭結點l,定義乙個尾指標r,並同時將r指向l。2.通過for迴圈將陣列元素乙個個插入...

c語言單鏈表的建立,頭插法,尾插法

單鏈表的建立有兩種方式 頭插法和尾插法。這兩種方法最大的區別在於對輸入資料的儲存方式不同,頭插是逆序,尾插是順序,尾插較於符合大多數人的習慣。但理解頭插法對於理解單鏈表的插入和刪除操作會有很大的幫助。不論是哪種方法,了解其建立原理理清思路是十分重要的一步,其次。對於乙個單鏈表來說,分為有頭節點的單鏈...

尾插法建立單鏈表並輸出

題目描述 輸入乙個正整數序列,遇負數時停止,建立乙個線性鍊錶儲存讀入的資料,將各個元素按順序輸出。樣例輸入 copy12 345 1樣例輸出 copy12 345 include include include using namespace std typedef struct lnode lno...