| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1215 人关注过本帖
标题:[原创]单链表常用运算问题
只看楼主 加入收藏
starrysky
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:华中科技大学EI -T0405
等 级:版主
威 望:11
帖 子:602
专家分:1
注 册:2005-9-12
收藏
得分:0 
我用的是VC++6.0
struct node
{
int data;
point next;
};
上面这个定义在编译时没问题,但在运行时,如果后面的程序中有用node 定义的变量,系统会提示没有定义node.

我的征途是星辰大海
2005-10-05 23:55
starrysky
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:华中科技大学EI -T0405
等 级:版主
威 望:11
帖 子:602
专家分:1
注 册:2005-9-12
收藏
得分:0 
前面可能没说清楚
w->next->next这个格式是 错误的,系统不能处理这个格式

我的征途是星辰大海
2005-10-06 10:19
sdwin
Rank: 1
等 级:新手上路
帖 子:5
专家分:0
注 册:2005-10-4
收藏
得分:0 
谢谢你又来光临!!呵呵!!关于这个问题,想了好久了,看来要试着用别的方法来做!
2005-10-06 20:18
starrysky
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:华中科技大学EI -T0405
等 级:版主
威 望:11
帖 子:602
专家分:1
注 册:2005-9-12
收藏
得分:0 
你可以用 * w->next代替w->next->next试试 最好是再加个指针

[此贴子已经被作者于2005-10-7 13:53:55编辑过]


我的征途是星辰大海
2005-10-07 09:16
反方向的鱼
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2006-5-31
收藏
得分:0 

程序有错:请各位高手帮帮忙!(有关约瑟夫环的)
#include<iostream.h>
struct node
{
int num;
int code;
node *next;
};
class linklist
{
public:
node *creat(node*head,int n);
node *select(node*head,int m);
};
node *linklist::creat(node*head,int n)
{
node*s,*p,*q;
int i;
s=new node;
head=s;
s->num=1;
p=s;
for(i=2;i<=n;i++)
{
s=new node;
s->num=i;
p->next=s;
p=s;
}
p->next=head;
cout<<"参加比赛人的编码依次为:";
q=head;
for(i=1;i<=n;i++)
{
cout<<q->num<<" ";
q=q->next;

}
return head;
}

node *linklist::select(node*head,int m)
{
node*p,*q;
int t;
p=head;t=1;
q=p;
do{
p=q->next;
t=t+1;
if(t%m==0)
{
cout<<p->num<<endl;
q->next=p->next;
m=p->code;
delete p;
}
else
q=p;

}while(q==p);
head=p;
return head;
}
void main()
{
linklist l;
int n,m,y;
node *head;
cout<<"请输入参加比赛的人数:";
cin>>n;
l.creat(head,n);
cout<<endl;
cout<<"请依次输入每个人的密码:"<<endl;
int Array[7];
for(int i=0;i<n;i++)
{
cin>>y;
Array[i]=y;
}
cout<<"设定每个人的密码依次为:"<<endl;
for(int x=0;x<n;x++)
{
cout<<Array[x];
}
cout<<"\n请输入开始密码:";
cin>>m;
l.select(head,m);
for(int j=0;j<n;j++)
l.select(head,Array[j]);
cout<<"游戏胜出者的编号为: ";
cout<<head->num;

}

//备注:函数有错!测试数据:参加比赛的人数7 每个人的密码依次3 1 7 2 4 8 4 开始密码6
答案应该为6 1 4 7 2 3 5(即每次删除人的编号排列)每次报数删除的那个人开始,删除的人的密码作下次报数,第一次报数从第一个人开始,报数为6!

2006-05-31 22:29
快速回复:[原创]单链表常用运算问题
数据加载中...
 
   



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

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