C語言實現約瑟夫環 鍊錶版本

2021-10-04 18:42:18 字數 1030 閱讀 6862

約瑟夫環:編號為1,2,…,n的n個人按順時針方向圍坐一圈,每人持有乙個密碼(正整數)。一開始任選乙個正整數作為報數上限值m,從第乙個人開始按順時針方向自1開始順序報數,報到m時停止報數。報m的人出列,將它的密碼作為新的m值,從它的順時針方向的下乙個人開始重新從1報數,如此下去,直至全部人出列為止。最後按照出列的順序輸出每個人的編號。

#include

#include

#include

// 定義成員結構體

struct member

node;

// 定義結構體指標

struct member* head,

* p,

* p1;

void

createlist

(int n)

;//建立迴圈鍊錶

void

enterpassword

(int n)

;//迴圈鍊錶賦值密碼

void

printnumber

(int n,

int m)

;//列印刪除人的順序

intmain()

void

createlist

(int n)

p->next = head;

// 構建迴圈鍊錶

p1 = head;

// p1指向頭結點初始化

}void

enterpassword

(int n)

}void

printnumber

(int n,

int m)

// 刪除節點

p = p1->next;

p1->next = p->next;

m = p->password;

// 重新賦值密碼

printf

("%d "

, p->number)

;// 輸出這個b的序號

free

(p);

}}

C語言 實現約瑟夫環

鏈式解法 include include typedef struct sqlist sqlist 建立解約瑟夫環需要的鍊錶,該鍊錶不帶頭節點 sqlist creatlist int length p next null 普通鍊錶轉不帶頭結點的迴圈鍊錶,就是將頭指標下移到第乙個節點位置 原來的頭結...

C語言實現約瑟夫環

直接上 define crt secure no warnings include includetypedef struct listnode listnode void create listnode firstnode,int m 建立單向迴圈鍊錶 int i listnode pre fir...

C語言實現約瑟夫環

一共有n個人,圍成一圈,從一開始報數,數到m的人出局,然後重新開始報數。算出出局的人的順序 如果最後只能剩下乙個人,請問是幾號?include includetypedef struct node linklist,node linklist init ring int num return hea...