先定義乙個泛型節點node
publicview codeclass node
public t current
public nodenext
public
node()
public
node(t node)
}
再定義乙個泛型鍊錶nodelist
publicview codeclass nodelist
public
int count
//////
新增
/// ///
public
void add(nodenode)
if (head.prev == null
)
var mod =head.prev;
mod.next =node;
node.prev =mod;
node.next =head;
head.prev =node;
count++;
}//////
刪除
/// ///
public
void delete(int
index)
//////
查詢
/// ///
///public nodeget(int
index)
return
mod1;
}//反向查詢
var mod2 =head;
var rindex = count -index;
for (int i = 0; i < rindex; i++)
return
mod2;
}//////
修改
/// ///
///public
void set(nodenode, int
index)
//////
插入
/// ///
///public
void insert(nodenode, int
index)
//////
遍歷元素
/// ///
public
void foreach(action>act)
act(mod);
mod =mod.next;}}
void checkindex(int
index)}}
最後是console的測試**
var list = new nodelist();view codelist.add(
new node("
111"
)); list.add(
new node("
222"
)); list.add(
new node("
333"
)); list.add(
new node("
444"
));
var act = new actionstring>>(it =>);
list.insert(
new node("
---"), 1
); list.set(
new node("
+++"), 3
); console.writeline(list.get(
3).current);
list.delete(2);
list.foreach(act);
console.readkey();
雙鏈表去掉頭部元素的前指標和尾部元素的後指標即可。
資料結構C 迴圈鍊錶
我曾經去一家遊戲公司面試時遇到乙個筆試題,大意就是說有一群人出去旅遊,在河中遇到了大風,然後用轉盤決定誰在留在船上,誰自己跳下去自行解決生存問題。大家圍成乙個圈,啟動轉盤,轉盤指向誰就從睡開始數數,當有人數到13時,誰就跳下去,然後從下乙個人開始從頭數,當再有人數到13時,繼續上乙個迴圈。當時題意沒...
資料結構 迴圈鍊錶
近期我在學習資料結構,於是我自己整理了單鏈表 迴圈單鏈表 雙向鍊錶 雙向迴圈鍊錶的相關 以鞏固這段時間的學習,也希望能夠幫助初學者,希望大家在閱讀以下 時發現問題糾正於我,一起 cyclinklist.h ifndef cyclinklist h define cyclinklist h inclu...
資料結構 迴圈鍊錶
迴圈鍊錶的結點 typedef struct circularnodecircularnode 迴圈鍊錶結構 typedef struct circularlinklistcircularlinklist 在迴圈鍊錶的指定位置插入元素 void insertcircularlinklist circ...