資料結構筆記 迴圈鍊錶 C

2022-04-26 03:51:04 字數 2064 閱讀 2355

先定義乙個泛型節點node

public

class node

public t current

public nodenext

public

node()

public

node(t node)

}

view code

再定義乙個泛型鍊錶nodelist

public

class 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)}}

view code

最後是console的測試**

var list = new nodelist();

list.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();

view code

雙鏈表去掉頭部元素的前指標和尾部元素的後指標即可。

資料結構C 迴圈鍊錶

我曾經去一家遊戲公司面試時遇到乙個筆試題,大意就是說有一群人出去旅遊,在河中遇到了大風,然後用轉盤決定誰在留在船上,誰自己跳下去自行解決生存問題。大家圍成乙個圈,啟動轉盤,轉盤指向誰就從睡開始數數,當有人數到13時,誰就跳下去,然後從下乙個人開始從頭數,當再有人數到13時,繼續上乙個迴圈。當時題意沒...

資料結構 迴圈鍊錶

近期我在學習資料結構,於是我自己整理了單鏈表 迴圈單鏈表 雙向鍊錶 雙向迴圈鍊錶的相關 以鞏固這段時間的學習,也希望能夠幫助初學者,希望大家在閱讀以下 時發現問題糾正於我,一起 cyclinklist.h ifndef cyclinklist h define cyclinklist h inclu...

資料結構 迴圈鍊錶

迴圈鍊錶的結點 typedef struct circularnodecircularnode 迴圈鍊錶結構 typedef struct circularlinklistcircularlinklist 在迴圈鍊錶的指定位置插入元素 void insertcircularlinklist circ...