資料結構(三) 鍊錶3 單向迴圈鍊錶

2021-10-04 01:56:35 字數 2387 閱讀 9484

//孩子節點

class

boypublic

intgetno()

public

void

setno

(int no)

public boy getnext()

public

void

setnext

(boy next)

@override

public string tostring()

';}}

建立乙個單向環形鍊錶的思路:

1-先建立第乙個節點,讓first指向該節點,並形成環形

2-後面當我們每建立乙個新的幾點,就把這個節點放到鍊錶的最後乙個節點後面。新加入的節點指向第乙個節點

方法:兩個節點,first和curboy,first節點是不動的,每新增乙個節點,curboy節點都後移一位,指向新節點

//孩子單向環形鍊錶

class

listdemo

//(2)寫乙個新增方法,加入節點構成迴圈單向鍊錶

public

void

addboy

(int nums)

//用for迴圈來建立環形鍊錶

boy curboy=null;

for(

int i =

1; i <= nums; i++

) curboy.

setnext

(boy)

;//把新建的孩子節點新增在後面

//首尾相連

boy.

setnext

(first)

; curboy=boy;

//輔助節點後移到新加的節點上}}

//(3)寫乙個刪除方法,刪除節點,退出鍊錶

//(4)寫乙個遍歷方法,輸出單向迴圈煉表裡的全部節點

public

void

listboy()

//first不能動,因此我們仍然使用乙個輔助指標完成遍歷

boy curboy=first;

while

(true

) curboy=curboy.

getnext()

;}}//根據使用者的輸入,計算出小孩出圈的順序

/**引數為:

* startno 表示從第幾個小孩開始數數

* countnum 表示數幾下

* nums 表示最初有多少小孩在圈中

** @methodname:

* @author: allensun

* @date: 2019/11/1 22:12

*/public

void

countboy

(int startno,

int countnum,

int nums)

//建立要給輔助指標,幫助小孩出圈

boy helper=first;

//需求建立乙個輔助指標(變數)helper,事先應該指向環形鍊錶的最後乙個節點

while

(true

) helper=helper.

getnext()

;}//小孩報數前,先讓first和helper移動k-1次

for(

int i =

0; i < startno-

1; i++

)//當小孩報數時,讓first和helper指標同時的移動m-1次,然後出圈

//這裡是乙個迴圈操作,直到圈中只有乙個節點

while

(true

)// 讓first和helper指標同時的移動m-1次

for(

int i =

0; i < countnum-

1; i++

)//這時first指向的節點,就是要出圈的小孩節點

system.out.

printf

("小孩%d出圈了\n"

,first.

getno()

);//這時把first指向的小孩節點出圈

first=first.

getnext()

; helper.

setnext

(first);}

system.out.

printf

("最後留在圈中小孩編號%d\n"

, helper.

getno()

);}}

public

class

singlecirclelinkedlist

}

資料結構 單向迴圈鍊錶

typedef struct node node,pnode pnode init link list void 單鏈表初始化 phead next phead return phead pnode new node int dat bool insert node tail pnode phead...

資料結構之單向迴圈鍊錶

基於單向鍊錶 將最後乙個節點 指向 頭結點 ifndef cirlinklist h define cirlinklist h typedef enum bool typedef int data typedef struct node node typedef struct list list 建...

資料結構 鍊錶操作 單向鍊錶

資料結構中的鍊錶基本操作,我這裡是也是為了學習記錄我自己的書寫的 過程.其中包含取鍊錶的新建,新增元素,刪除元素,取指定索引值,向元素尾部追加元素 等等 資料結構中的鍊錶基本操作,我這裡是也是為了學習記錄我自己的書寫的 過程.其中包含取鍊錶的新建,新增元素,刪除元素,取指定索引值,向元素尾部追加元素...