删除插入结点


#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;
}

posted on 2012-12-07 23:09  木本  阅读(117)  评论(0编辑  收藏  举报

导航