前言
雙鏈表是指,不光有字尾指標,還有字首指標,需要注意的是,要與雙向迴圈鍊錶區別,在雙鏈表中,表頭結點的字首指向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...