六 資料結構 線性表 迴圈單鏈表

2021-10-04 01:31:46 字數 941 閱讀 6142

1、迴圈單鏈表就是在單鏈表的基礎上,把最後乙個節點指向第乙個節點。

2、下面用迴圈單鏈表來實現約瑟夫環。

比如圓桌坐著5個人編號:1,2,3,4,5

指定從3開始報數,報到2的人退出,那麼

第一次報數:3開始,4退出

第二次報數:5開始,1退出

第三次報數:2開始,3退出

第四次報數:5開始,2退出

最後剩下5,所以5勝出。

3、實現**如下:

#include //每乙個節點

typedef struct linklink;

//初始化迴圈鍊錶

link *initlink(int max)

tmp ->next = p; //把最後乙個節點指向第乙個節點,實現迴圈

return p;

}link *killall(link *p,int start,int add)

link *startnode = tmp->next->next; //找到下一次開始報數人

link *drop = tmp->next; //要退出的人

if(drop == p) //如果要退出的人是第乙個節點,那就把p指向下一次的報數人

p = startnode;

printf("要退出的人:%d,下乙個開始報數人:%d\n",drop->data,startnode->data);

free(drop); //釋放空間

while(startnode->next != startnode)

return p;

}//輸出鍊錶中的成員

void display(link *p)

printf("%d",tmp->data); //不要把最後乙個元素忘了

printf("\n");

}int main()

資料結構 線性表之單鏈表

線性表 亦作順序表 是最基本 最簡單 也是最常用的一種資料結構。線性表中資料元素之間的關係是一對一的關係,即除了第乙個和最後乙個資料元素之外,其它資料元素都是首尾相接的。線性表有兩種儲存結構 順序儲存結構,即儲存單元在一段連續的位址上儲存,常見的陣列就是順序儲存結構的線性表 鏈式儲存結構,即儲存單元...

資料結構C C 線性表和單鏈表

在vs2005下面測試通過.最基本的 code include stdafx.h include include stdio.h include using namespace std typedef int type typedef struct lnodelnode,linklist linkl...

資料結構專題 線性表之單鏈表

對比了好幾本書,比較少涉及單鏈表的賦值,為了親自跑出其他功能,花了不少時間,畢竟是打基礎嘛,相信以後會越來熟練 你為什麼那麼熟練,明明是我先 話不多說,下面是 及實驗結果。include include define elementtype int define maxsize 1000 defin...