//雙鏈表
#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
(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 學會了單向鍊錶,我們又多了一種解決問題的能力,單鏈表利用乙個指標就能在記憶體中找到下乙個位置,這是乙個不會輕易斷裂的鏈。但單鏈表有乙個弱點 不能回指...