C語言(順序表)實現約瑟夫問題

2021-09-25 08:31:23 字數 1162 閱讀 4659

約瑟夫問題是個有名的問題:n個人圍成一圈,從第乙個開始報數,第m個將被殺掉,最後剩下乙個,其餘人都將被殺掉。例如n=6,m=5,被殺掉的順序是:5,4,6,2,3,1。

環境:dev c++

下面我們用順序表實現約瑟夫問題,結果圖如下:

用順序表實現約瑟夫問題,完整**如下:

#include#include#define maxsize 30

struct sqlist

;typedef struct sqlist sqlist;

void initlist(sqlist *&l)

void createlist(sqlist *&l)

printf("\n");

l->length = people;

}void displaylist(sqlist *l)

l->length = l->length - 1;

}printf("\n");

}int main()

用迴圈單鏈表實現的約瑟夫問題:

#include#includestruct node

;//建立乙個結點結構體

int main()

else

}//建立乙個不帶頭結點的單鏈表

q->next=head;//將單鏈表組成環狀,形成迴圈單鏈表

printf("\n");

printf("之前的序列為:\n");

q=head;

while(q->next!=head)

//依次輸出結點的值

printf("%d ",q->data);

q=head;

printf("\n");

printf("\n");

printf("依次出列的順序是:\n");

do q=q->next;

} while(q->next!=q);

printf("\n");

printf("\n");

printf("最後剩下的人是: %d ",q->data);

}

希望能幫助到各位瀏覽者

C語言迴圈順序鍊錶實現約瑟夫環

include include typedef struct sssone 初始化結點的方法 one initialize int n 尾結點指向頭結點 y next s 返回首結點位址 return s void find one s,int k,int m one w s 找到開始數數的人的編號...

C語言 約瑟夫問題迴圈鍊錶實現

約瑟夫問題 10分 題目內容 有n只猴子,按順時針方向圍成一圈選大王 編號從1到n 從第1號開始報數,一直數到m,數到m的猴子退出圈外,剩下的猴子再接著從1開始報數。就這樣,直到圈內只剩下乙隻猴子時,這個猴子就是猴王,程式設計求輸入n,m後,輸出最後猴王的編號。輸入格式 輸入包含兩個整數,第乙個是n...

約瑟夫問題 順序表求解

include stdio.h include stdlib.h define maxsize 100 typedef struct node seqlist,pseqlist 定義乙個順序表 pseqlist init seqlist 順序表初始化 printf creat error retur...