2014 10 10 約瑟夫環 迴圈列表

2021-06-26 06:03:34 字數 890 閱讀 2059

約瑟夫問題.cpp : 定義控制台應用程式的入口點。

約瑟夫問題:已知n個人(n>=1)圍坐一圓桌周圍,從1開始順序編號。從序號為k(k由使用者指定)

的人開始報數,順時針數到m(m由使用者指定)的那個人出列。他的下乙個人又從1開始報數,數到

m的那個人又出列。依此規則重複下去,直到所有人全部出列。請問最後乙個出列的人的編號。

#include "stdafx.h"

#include "malloc.h"

typedef struct node 

lnode,*linklist; 

linklist creat_linklist(int n)  //在表尾插入,建立迴圈鍊錶,n表示鍊錶長度

else

}q->next=h;

if (h!=null)

return h;

else  }

int getlength(linklist l)//計算當前約瑟夫環上的人數

else

return i;}}

linklist del(linklist *l,int i)//返回當前出列的人,q指向當前應該出列的人,作為函式的返回值

q=p->next;

p->next=p->next->next;

*l=p->next;//改變迴圈鍊錶的頭指標,本輪出列之後從下乙個開始

return q;

}void joseph(linklist l,int n,int m)//n表示總人數,m表示每次報數的人數

else

else

printf("第%d次出列的號數:%d\n",i,q->data);

free(q);

}printf("最後乙個出列的號數是:%d\n",l->data);}}

迴圈鍊錶(約瑟夫環)

約瑟夫環是乙個數學的應用問題 已知n個人 以編號1,2,3.n分別表示 圍坐在一張圓桌周圍。從編號為k的人開始報數,數到m的那個人出列 他的下乙個人又從1開始報數,數到m的那個人又出列 依此規律重複下去,直到圓桌周圍的人全部出列。要通過輸入n,m,k三個正整數,來求出列的序列。這個問題採用的是典型的...

迴圈鍊錶應用 約瑟夫環

約瑟夫環是乙個數學的應用問題 已知n個人 以編號1,2,3.n分別表示 圍坐在一張圓桌周圍。從編號為k的人開始報數,數到m的那個人出列 他的下乙個人又從1開始報數,數到m的那個人又出列 依此規律重複下去,直到圓桌周圍的人全部出列。include includetypedef struct node ...

單向迴圈鍊錶 約瑟夫環

寫個約瑟夫環,檢驗一下自己的學習狀況.include define elemtype int typedef struct lnodesqlist void initlist sqlist l,elemtype n void round sqlist l,int m,int n int main v...