| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 534 人关注过本帖
标题:[求助]用链表解出圈问题
只看楼主 加入收藏
zzsy04et138
Rank: 1
等 级:新手上路
帖 子:113
专家分:0
注 册:2006-10-18
收藏
 问题点数:0 回复次数:4 
[求助]用链表解出圈问题
有10个人围成一圈,顺序排号。从第一个人开始报数(从l到3报数),凡报到3的人退出圈子,问最后留下的是原来第几号的那位。
有谁能用链表解的啊.谢谢了哈.
搜索更多相关主题的帖子: 表解 出圈 
2007-10-26 11:26
cobby
Rank: 1
等 级:新手上路
威 望:1
帖 子:565
专家分:0
注 册:2007-7-11
收藏
得分:0 

努力成为菜鸟!
2007-10-26 13:33
josen0205
Rank: 2
来 自:江苏
等 级:论坛游民
帖 子:307
专家分:52
注 册:2007-5-8
收藏
得分:0 

[CODE]
/*************************************************************/
/* M个人围成一圈,从1至N开始顺序循环报数 */
/* 每数到N的人出列,输出该数值,直至全部输出 */
/*************************************************************/
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>

/* 循环链表结构 */
typedef struct Node{
int data;
struct Node *next;
}*LinkList;

/* 利用单向循环链表找到符合条件的节点,输出节点值并删除该节点 */
int CreateList(LinkList &L,int m); /* 将m个人1到m编号依次插入循环链表L中 */
int GetNode(LinkList &L,int n); /* 依次删除输出链表中符合要求的节点 */

int CreateList(LinkList &L,int m)
{
int i=1;
LinkList tmp,p;
/* 给链表头指针分配内存 */
L=(LinkList)malloc(sizeof(struct Node));
if(L==NULL)
{
printf("动态分配内存失败!");
return -1;
}
p=L;
for(i=1;i<=m;i++) /* 依次为节点分配内存,插入链表 */
{
tmp=(LinkList)malloc(sizeof(struct Node));
if(tmp==NULL)
{
printf("动态分配内存失败!");
return -1;
}
/* 将节点tmp插入链表 */
tmp->data=i;
p->next=tmp;
p=tmp;
}
tmp->next=L->next; /* 最后一个节点next指针指向第一个节点 */
return 0;
}

int GetNode(LinkList &L,int n)
{
LinkList p,s;
int i=0;
p=L->next; /* p指向第一个节点 */
while(p->next!=p) /* 链表中只有一个节点时终止 */
{
i++;
if(i==n-1) /* 找到报数n的节点,输出节点值并删除节点,计数器i归位 */
{
s=p->next;
p->next=p->next->next;
printf("%d ",s->data);
i=0;
free(s);
}
p=p->next;
}
printf("%d ",p->data); /* 输出最后一个节点,并释放其内存 */
free(p);
free(L); /* 释放头节点内存 */
return 0;
}

int main()
{
int m,n;
LinkList L;

printf("Enter the total number of the person[m]:"); /* 总人数 */
scanf("%d",&m);
printf("Enter the number of get out[n]:");
scanf("%d",&n);
CreateList(L,m);
printf("The out queue is:\n");
GetNode(L,n);

getch();
return 0;
}
[/CODE]


只有想不到,没有做不到
2007-10-26 13:35
zzsy04et138
Rank: 1
等 级:新手上路
帖 子:113
专家分:0
注 册:2006-10-18
收藏
得分:0 
挖,这么多,不是说用链表看起来会更简单吗.怎么这么难..呵呵,谢谢楼上的哈。

2007-10-26 17:08
ondy
Rank: 1
等 级:新手上路
威 望:1
帖 子:88
专家分:0
注 册:2007-9-4
收藏
得分:0 

把尾插法掌握好还有单链表的删除的知识掌握好就OK了


2007-10-27 19:51
快速回复:[求助]用链表解出圈问题
数据加载中...
 
   



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

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