== >博主:牆角黑貓
< 1 > 原理解釋:
雙向鍊錶的理解是在每個節點之間存在雙向的連線,例如和單鏈表對比:單鏈表是 a -> b -> c -> d ->...
每個節點是單向連線的,a只能指向b,從b無法直接到a。而雙向鍊錶是 a <==> b <==> c <==> d <==>....
這樣就實現了a和b的完全互通。大家可以結合下圖理解一下!!
< 2 > **部分:
#include
#include
#define ok 1;
#define error 0;
typedef
char elemtype;
typedef
int status;
typedef
struct dualnode
dualnode;
typedef
struct dualnode* dulinklist;
status initlist
(dulinklist *l)
(*l)
->next =
(*l)
->prior =
null
; p =
(*l)
;for
(i=0
; i<
26; i++
) q -> data =
'a'+ i;
q -> prior = p;
q -> next = p -> next;
p -> next = q;
p = q;
} p -> next =
(*l)
-> next;
(*l)
-> next -> prior = p;
return ok;
}void
caesar
(dulinklist *l,
int i)
while
(--i);}
if(i <0)
while
(++i);}
}int
main()
printf
("\n");
return0;
}
< 3 > 說明一下:< 4 > 超連結github
本文連線
C 資料結構 雙向鍊錶
鍊錶的概念以及鍊錶與陣列的差異不做過多的敘述,相信大家都耳熟能詳,這裡以c 語言實現簡單的雙向鍊錶,作為備用,記錄下 否則逆序查詢 var prenode head.prev for int i 0 i count 1 index i prenode prenode.prev return pren...
C 資料結構 雙向鍊錶
鍊錶的概念以及鍊錶與陣列的差異不做過多的敘述,相信大家都耳熟能詳,這裡以c 語言實現簡單的雙向鍊錶,作為備用,記錄下 否則逆序查詢 var prenode head.prev for int i 0 i count 1 index i prenode prenode.prev return pren...
資料結構 鍊錶 雙向鍊錶
注意typedef的定義結構,以及dinklist的資料型別 typedef struct dnode dnode,dinklist 注意插入第乙個結點時,prior指標的空指向問題 if l next null 若l後繼結點為空 則省略該步驟 l next prior p 基本 頭插法建立雙向鍊錶...