資料結構練習 約瑟夫問題 迴圈鍊錶的建立與使用

2021-09-05 09:05:29 字數 751 閱讀 3086

1.約瑟夫問題

描述:有n只猴子,按順時針方向圍成一圈選大王(編號從1到n),從第1號開始報數,一直數到m,數到m的猴子退出圈外,剩下的猴子再接著從1開始報數。就這樣,直到圈內只剩下乙隻猴子時,這個猴子就是猴王,程式設計求輸入n,m後,輸出最後猴王的編號。

輸入:輸入包含兩個整數,第乙個是n,第二個是m (0 < m,n <=300)。

輸出:輸出包含一行,即最後猴王的編號。

樣例輸入

12 4

樣例輸出1

#include

#include//存放malloc,calloc,realloc,free函式

using namespace std;

typedef int elemtype;

typedef struct dnode   //結點型別

dnode;  //dnode為結構體型別的變數名。

int main()

p = l->next;

s->next = p;   //連線首尾元素,使煉表成環。

free(l);     // 釋放頭結點

while(p->next != p)

p->next = p->next->next;    //將第k只猴子淘汰

p = p->next;

}printf("%d\n",p->data);

return 0;

}

資料結構 迴圈鍊錶之約瑟夫問題

include include include using namespace std define elemtype string typedef struct lnode lnode,listq 迴圈鍊錶初始化 頭針指lq向最後乙個資料 bool initiallist listq lq ito...

約瑟夫問題(迴圈鍊錶)練習

約瑟夫問題是個著名的問題 n個人圍成一圈,第乙個人從1開始報數,報m的將被殺掉,下乙個人接著從1開始報。如此反覆,最後剩下乙個,求最後的勝利者。例如只有三個人,把他們叫做a b c,他們圍成一圈,從a開始報數,假設報2的人被殺掉。約瑟夫問題其實就乙個迴圈鍊錶問題 先建立節點類 public clas...

資料結構 迴圈鍊錶,約瑟夫環

一 迴圈鍊錶 include stdio.h include stdlib.h typedef struct node node 初始化迴圈鍊錶 void ds init node pnode 初始化迴圈鍊錶,pnode 鍊錶上 else 返回結點所在位置 int ds search node pn...