| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 614 人关注过本帖, 1 人收藏
标题:对于链表的操作还真的是无从下手,高手能不能指点一下。。。。
取消只看楼主 加入收藏
刘林夕
Rank: 1
等 级:新手上路
帖 子:18
专家分:0
注 册:2011-10-14
结帖率:0
收藏(1)
 问题点数:0 回复次数:0 
对于链表的操作还真的是无从下手,高手能不能指点一下。。。。
Input codes:(5)5
Input codes:(6)8
Input codes:(7)9   约瑟夫问题是一个十分有趣的小游戏,问题的描述如下:编号为1,2,3,......,n的n个人按顺时针方向围坐一圈,每人持有一个密码(正整数),开始选一正整数m,从第一人开始,按顺时针方向自1开始顺序报数,报到m时此人出列,将他的密码作为新的m值,从他在顺时针方向的下一个人开始从1报数,如此下去,直至全部人出列。我们的游戏就是看一下出列的次序。要求编者使用循环链表的方法将问题解决,下面给出程序的类型定义,其他代码编者自己完成。(运行后的输入和输出界面如下显示)
# include <stdio.h># include <malloc.h># include <conio.h>typedef struct node_type
{
int seq,code;   //分别存放编号和密码struct node_type *next;
}link;


**运行时屏幕显示如下。输入队列中的人数Input number n:7   
依次输入每一个人的手持密码
Input codes:(1)2     
Input codes:(2)1
Input codes:(3)4
Input codes:(4)3
      
至此可以建立起一个循环链表




Input the first code m:3   输入一个正整数作为起始密码
输入完成以后,可得以下的结果:
the result is :3 7 5 6 2 4 1

提示:
1 可以用循环链表,设立一个头结点.这样便于判断链表为空.
2用合适的算法让指针P指向要出列(删去)的节点,
3删去P所指的结点,注意删除的结点是不是链尾,要分情况讨论
4 当队列不空,回到2,重新定位指针P的位置,注意删去节点的CORD值是下次定位的依据.
搜索更多相关主题的帖子: 密码 小游戏 约瑟夫 顺时针 正整数 
2011-10-17 14:10
快速回复:对于链表的操作还真的是无从下手,高手能不能指点一下。。。。
数据加载中...
 
   



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

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