dele和insert函数 哪里有有关问题
发布时间: 2013-03-17 13:48:31 作者: rapoo
dele和insert函数 哪里有问题

插入失败 输入要删除的学号 后 就不运行了 怎么解决啊
[解决办法]删除时要判num而不是name。还要考虑被删的是否head等。试修改如下:
cout<<"请输入你要删除的学号"<<endl;
cin>>dele->num;
while(stu!=NULL) //while(stu->next!=NULL)
{
if(stu->num!=dele->num)//if(stu->name!=dele->name)
{
p=stu; //p->next=stu;
stu=stu->next;
}
else
{
if (stu == head)//加
{
head = stu->next;//加
}
else
{
p->next = stu->next;
}
delete stu;//加
break;
}
}
[解决办法]不要ele=new Student;
只要定义num即可:int num;
Student *del(Student *stu)
{
Student *head,*p;//删,*dele;
int num;//加
p=head=stu;
//删dele=new Student;
cout<<"请输入你要删除的学号"<<endl;
cin>>num;//cin>>dele->num;
while(stu!=NULL) //while(stu->next!=NULL)
{
if(stu->num!=num)//if(stu->name!=dele->name)
{
p=stu; //p->next=stu;
stu=stu->next;
}
else
{
if (stu == head)//加
{
head = stu->next;//加
}
else
{
p->next = stu->next;
}
delete stu;//加
break;
}
}
return head;
}