| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 687 人关注过本帖
标题:[求助]各位高手好,请教一个有关链表的问题
只看楼主 加入收藏
soccer8383
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2004-12-8
收藏
 问题点数:0 回复次数:4 
[求助]各位高手好,请教一个有关链表的问题

之前用数组解决过这样一个问题:

有一件礼物,要送给如下游戏的幸运者:有n个人围成一圈,从第一个人开始从1报数,报到m的人退出圈子,退出者的下一位开始从1重新报数,报到m的人退出圈子......直到最后一个人从圈子里面出来,最后走出来的人即为幸运者。编写程序,打印出来幸运者的编号,并打印各个人出圈的先后顺序。

现在要用链表来解决。用循环链表。我对链表非常不熟。解决不了。希望高手不吝赐教。非常感谢!!

搜索更多相关主题的帖子: 链表 
2004-12-08 20:17
时空之蕊
Rank: 2
等 级:新手上路
威 望:3
帖 子:691
专家分:0
注 册:2004-10-31
收藏
得分:0 

#include <stdio.h> #include <malloc.h>

struct strNum { int num; struct strNum * pNext; };

void main() { int n=0,m=0; struct strNum *head,*p,*temp;

printf("Input the Number:"); scanf("%d",&n); if(n<2) { printf("Input Erro ! The Number is must >=2 .\n"); return; } printf("Input the m:"); scanf("%d",&m); if(m<2) { printf("Input Erro ! The m is must >=2 .\n"); return; }

p=head=(struct strNum *)malloc(sizeof(struct strNum)); p->pNext=head; p->num=1; for(;n>1;n--) { p->pNext=(struct strNum *)malloc(sizeof(struct strNum)); p->pNext->num=p->num+1; p=p->pNext; } p->pNext=head; n=1,p=head; for(;;) { n++; if(n%m==0) { n=0; if(p->pNext==p) { printf("The number is:%d",p->num); free(p->pNext); break; } else { temp=p->pNext; p->pNext=p->pNext->pNext; free(temp); } } p=p->pNext; } printf("\n"); }

看看能不能用!


我渴望掌控时空的核心——用最先进的技术,打造无比美丽的世界!
2004-12-09 00:38
corrupt
Rank: 2
等 级:新手上路
威 望:3
帖 子:535
专家分:0
注 册:2004-9-29
收藏
得分:0 

不就是个 约 瑟夫问题吗??


2004-12-09 10:23
soccer8383
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2004-12-8
收藏
得分:0 
多谢斑竹,急公好义的好人感激不尽!初次登陆论坛,没想到大家这么热心。以后还请大家多多帮助,谢谢。
2004-12-09 12:35
genius1985
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2004-12-9
收藏
得分:0 
高,实在是高
2004-12-09 16:07
快速回复:[求助]各位高手好,请教一个有关链表的问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.023283 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved