資料結構雙向鍊錶 C

2021-10-04 22:45:11 字數 1361 閱讀 6322

== >博主:牆角黑貓

< 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 基本 頭插法建立雙向鍊錶...