本來是想改改算了,最後變成全部重寫。既然都是自己寫的,也算是原創吧!
struct
node
node(
intval,node
*nextnode, node
* priornode):data(val),next(nextnode),prior(priornode){}
};node
*headnode
=new
node;
node
*createdlink(node
* head)
return
(headnode);
}void
listdlink(node
* head)
cout
<<
endl;
}int
getnodecount(node
* head)
node
*getnodebyindex(node
*head,
int idx)
}return
null;
}int
getnodevaluebyindex(node
*head,
int idx)
node
*getnodebyvalue(node
*head,
int val)
}return
null;
}int
getnodeindexbyvalue(node
*head,
int val)
}return-1
;}node
*insertnode(node
*posnode,
int x)
return
newnode;
}node
*insertnode (node
*head,
intidx,
int x)
bool
delnode(node
* delnode)
return
false
;}bool
delnodebyindex(node
*head,
int idx)
return
false
;}bool
delnodebyvalue(node
*head,
int val)
return
false
;}
自己實現乙個雙向鍊錶
雙向鍊錶和單向鍊錶不同的是雙向鍊錶中不僅有next指向,還有pre這個指向,分別指向了該節點的前乙個節點和後乙個節點,這樣比單向鍊錶操作起來更方便.class twonode public class mylinkedlist 0.求鍊錶長度 public intlength 1.頭插 public...
乙個簡單的雙向鍊錶(C 實現)
直接上 親測有用。ifndef dlink h define dlink h phead index0 index1 index2 phead phead index0 index1 index2 phead phead 不儲存資料。index是從0開始的。count index 1 templat...
乙個雙向鍊錶排序問題
題目 建立乙個長度為n的帶頭結點的雙向鍊錶,使得該鍊錶中的資料元素遞增有序排列。必須使用雙向鍊錶完成,資料型別為整型。思路 根據題目建立好該雙向鍊錶 尾插法 然後用個指標依次查詢,先從第乙個節點往後走,找出最大節點max,再將max和最後乙個元素交換,第一遍結束 即奇數遍正向查詢 第二遍,從最後乙個...