删除插入结点
#include
#include
using namespace std;
struct student
{
int num;
char name[20];
student *next;
};
void print(student *p1);
student *creat(student *stu);
student *del(student *head);
student *insert(student *head,student *q);
int main()
{
student *p1,*stu,*q;
q=new student;
cout<<"输入一个要插入的num和name"<<endl;
cin>>q->num>>q->name;
cout<<"输入一串student类型的num和name"<<endl;
p1=creat(stu);
p1=del(p1);
p1=insert(p1,q);
print(p1);
return 0;
}
student *creat(student *head)
{
student *p1,*p2;
head=NULL;
head=new student;
p1=head;
p2=p1;
cin>>p1->num>>p1->name;
while(p1->num!=0)
{
p1=new student;
p2->next=p1;
cin>>p1->num>>p1->name;
p2=p1;
}
p1->next=NULL;
return head;
}
void print(student *head)
{
student *p1;
p1=head;
while(p1!=NULL)
{
cout<<p1->num<<" "<<p1->name<<endl;
p1=p1->next;
}
}
student *del(student *head)
{
student *p1,*p2;
p1=head;
if(p1->num==10)
head=p1->next;
else
while(p1!=NULL)
{
if(p1->num==10)
p2->next=p1->next;
p2=p1;
p1=p1->next;
}
return head;
}
student *insert(student *head,student *q)
{
student *p1,*p2;
p1=head;
while(p1!=NULL)
{
if(p1->num==20)
{
p2->next=q;
q->next=p1;
}
p2=p1;
p1=p1->next;
}
return head;
}