約瑟夫問題是個有名的問題: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...