資料結構 003雙向鍊錶

2021-10-05 22:02:02 字數 1071 閱讀 4874

//雙鏈表

#include

using

namespace std;

typedef

int elemtype;

typedef

struct lnode lnode,

*linklist;

//初始化

linklist init_linklist()

//頭插法建立鍊錶

linklist head_insert

(linklist l,

int n)

return l;

}//插入乙個新結點

//插入到表頭和表尾時都要特殊考慮

linklist insert_linklist

(linklist l,

int loc, elemtype e)

int i =0;

//找到插入位置的前乙個結點

while

(i < loc -1)

if(p-

>next ==

null

) s-

>next = p-

>next;

p->next-

>prior = s;

s->prior = p;

p->next = s;

return l;

}//刪除結點

linklist delete_linklist

(linklist l,

int loc)

linklist q = p-

>next-

>next;

//當刪除的結點是最後乙個的時候需要特殊考慮

if(q ==

null

) p-

>next = q;

p->next-

>prior = p;

return l;

}void

print

(linklist l)

cout << endl;

}int

main()

資料結構四雙向鍊錶

雙向鍊錶也叫雙鏈表,是鍊錶的一種,它的每個資料結點中都有兩個指標,分別指向直接後繼和直接前驅。所以,從雙向鍊錶中的任意乙個結點開始,都可以很方便地訪問它的前驅結點和後繼結點。而之前的單鏈表為單向鍊錶,雙向鍊錶也就是在單鏈表的結點中增加乙個指向其前驅的pre指標。如圖 這裡介紹雙向鍊錶的常用操作 l ...

資料結構基礎 1 雙向鍊錶

linklist.h ifndef link list h define link list h 1 include include include struct stu struct stu initlist struct stu head void destroylist struct stu ...

資料結構實驗之鍊表九 雙向鍊錶

time limit 1000ms memory limit 65536kb submit statistic problem description 學會了單向鍊錶,我們又多了一種解決問題的能力,單鏈表利用乙個指標就能在記憶體中找到下乙個位置,這是乙個不會輕易斷裂的鏈。但單鏈表有乙個弱點 不能回指...