1约瑟夫问题:n个人围成一圈,从第s(sn)个人开始报数,数到m的人出圈;再由下一个人开始报数,数到m的人出圈;。输出依次出圈的人的编号。m的值预先选定,n由键盘输入。分析:我们将这n个人组成一个链表,表中每一个元素为一记录类型,第一个域变量lvalue为人的编号,第二个域变量next指向下一个人,这样链接下去构成一个环形链。然后由lvalue值为s的记录开始,对链中的元素逐一记数,数到第m个记录时,将它删去,即把第(m-1)个记录的指针改成指向第(m+1)个记录,然后从第(m+1)个向下记数,这样重复进行下去,直到剩下一个记录。出列的人也组成一条链,r是其首指针,只要打印这条链就得到结果。源程序如下:#include #include #include / 使用malloc()函数的库函数#include typedef struct linknodeint lvalue;struct linknode *next; point;
Copyright © 2018-2021 Wenke99.com All rights reserved
工信部备案号:浙ICP备20026746号-2
公安局备案号:浙公网安备33038302330469号
本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。