| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 497 人关注过本帖
标题:[求助]链表没有输出来~
取消只看楼主 加入收藏
六道
Rank: 1
等 级:新手上路
帖 子:120
专家分:0
注 册:2007-9-28
收藏
 问题点数:0 回复次数:1 
[求助]链表没有输出来~

struct student
{
long number;
float score;
student * next;
};

student * head; //链首指针

student * creat() //创建链表
{
student *ps; //结点指针
student *pend; //链尾指针
ps=new student; //分配内存空间,建立一个节点,准被插入链表
cin>>ps->number>>ps->score;
head=NULL; //开始链表为空
pend=ps;

while(ps->number!=0)
{
if(head==NULL)
pend=ps;
else
pend->next=ps;

pend=ps;
ps=new student;
cin>>ps->number>>ps->score;
}
pend->next=NULL;
delete ps;
return head;

}

void showlist(student * head)
{
cout<<"now the items of list are:"<<endl;
while(head)
{
cout<<head->number<<","<<head->score<<endl;
head=head->next;
}
}

void main()
{
showlist (creat());
}

输入后,显示now the items of list are: 下面就不显示了,输出有什么错误??

[此贴子已经被作者于2007-10-23 11:09:30编辑过]

搜索更多相关主题的帖子: 链表 
2007-10-23 10:38
六道
Rank: 1
等 级:新手上路
帖 子:120
专家分:0
注 册:2007-9-28
收藏
得分:0 

知道到了,谢谢~~

//链表的建立,删除,插入
struct student
{
long number;
float score;
student * next;
};

student * head; //链首指针
student *stud; //插入节点指针

student * creat() //创建链表
{
student *ps; //结点指针
student *pend; //链尾指针
ps=new student; //分配内存空间,建立一个节点,准被插入链表
cin>>ps->number>>ps->score;
head=NULL; //开始链表为空
pend=ps;

while(ps->number!=0) //输入为0结束
{
if(head==NULL)
head=ps;
else
pend->next=ps;

pend=ps;
ps=new student;
cin>>ps->number>>ps->score;
}
pend->next=NULL;
delete ps;
return head;

}

void showlist(student * head) //打印链表信息
{
cout<<"\nnow the items of list are:"<<endl;
while(head)
{
cout<<head->number<<","<<head->score<<endl;
head=head->next;
}
}

void ldelete(student *head,long number) //删除链表节点
{
char ch;
cout<<"是否要删除?(Y/N)";
cin>>ch;
if(ch=='y'||ch=='Y')
{
cout<<"enter a number will be deleted:";
cin>>number;
student *p;
if(!head)
{
cout<<"list is null.";
return; //未作删除,返回
}

if(head->number==number) //要删除的节点在链首
{
p=head;
head=head->next;
delete p;
cout<<number<<"the head of list have been deleted.\n\n";
return;
}

for(student *pguard=head;pguard->next;pguard=pguard->next) //删除的节点在链中或结尾
{
if(pguard->next->number==number)
{
p=pguard->next;
pguard->next=p->next;
delete p;
cout<<number<<"have been deleted.\n\n";
return;
}
}
cout<<number<<"not found!\n"; //此处表示未找到要删除的节点
}
}

void insert(student *head,student *stud) //插入链表节点
{
char ch;

cout<<"\n是否要插入?(Y/N)";
cin>>ch;
if(ch=='y'||ch=='Y')
{
cout<<"enter informaion of insert:";
cin>>stud->number>>stud->score;
if(head==NULL)
{
head=stud;
stud->next=NULL;
return;
}

if(head->number>stud->number) //插入节点的位置在链首
{
stud->next=head;
stud=head; //插入节点成为链首
return;
}

student * pguard=head; //把插入节点先放置到链首
while((pguard->next)&&(pguard->next->number)<(stud->number))//未找到,继续向后走
pguard=pguard->next;

stud->next=pguard->next; //找到插入位置进行操作
pguard->next=stud;
}
}

void main()
{
long number;
student st;
showlist(creat());
ldelete(head,number);
showlist(head);
insert(head,&st);
showlist(head);
}

想以学号大小来排序,算法没想出来~


★孤独的人是可耻的★
2007-10-23 13:35
快速回复:[求助]链表没有输出来~
数据加载中...
 
   



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

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