#include<iostream>
#include<string>
using namespace std;
struct stu{
int number;
string name;
struct stu*next;
};
void creat(stu*head);
void print(stu*head);
void insert(stu*head);
void del(stu*head);
void picture();
int main()
{char c=NULL;
stu *p,*head;
p=new stu;
head=p;
star:
for(;(c<'A')||(c>'E');)
{ system("cls");
picture();
cout<<"* A: 新建链表 "<<endl;
cout<<"* B: 插入新值 "<<endl;
cout<<"* C: 删除表值 "<<endl;
cout<<"* D: 打印链表 "<<endl;
cout<<"* E: 释放内存 "<<endl;
cout<<"********请输入你的操作*******"<<endl;
cout<<"输入有误,请重新输入"<<endl;
c=getchar();}
switch(c)
{
case 'A': creat(p); break;
case 'B': insert(head);break;
case 'C': del(head);break;
case 'D': print(head);break;
case 'E' :{delete p;
cout<<"按任意键退出"<<endl;
goto end;
break;}
}
goto star;
end:
return 0;
}
//图形
void picture()
{
for(int i=1;i<30;i++)
cout<<'*';
cout<<endl;
}
//创建
void creat(stu *p)
{
stu *tail;
cout<<"输入学生学号"<<endl;
cin>>p->number ;
cout<<"输入学生姓名"<<endl;
cin>>p->name ;
while(p->number!=0)
{
tail=p;
p=new stu;
tail->next =p;
cout<<"输入学生学号"<<endl;
cin>>p->number ;
if(p->number !=0)
{
cout<<"输入学生姓名"<<endl;
cin>>p->name ;
}
p->next =NULL;
}
}
//打印
void print(stu*head)
{
stu *s;
for(s=head;s!=NULL;s=s->next )
cout<<s->name <<endl<<s->number <<endl;
}
//插入
void insert(stu*head)
{int number;
stu *p,*s;
cout<<"请指入插入位置前的学号"<<endl;
cin>>number;
for(s=head;s!=NULL;s=s->next )
if(s->number ==number)
{
p=new stu;
p->next =s->next ;
s->next=p;
cout<<"输入学生学号"<<endl;
cin>>p->number ;
cout<<"输入学生姓名"<<endl;
cin>>p->name ;
}
}
//删除
void del(stu*head)
{
int number;
stu *s;
cout<<"请指入删除位置的前一个学号"<<endl;
cin>>number;
for(s=head;s!=NULL;s=s->next )
if(s->number ==number)
s->next=s->next ->next ;
}
#include<string>
using namespace std;
struct stu{
int number;
string name;
struct stu*next;
};
void creat(stu*head);
void print(stu*head);
void insert(stu*head);
void del(stu*head);
void picture();
int main()
{char c=NULL;
stu *p,*head;
p=new stu;
head=p;
star:
for(;(c<'A')||(c>'E');)
{ system("cls");
picture();
cout<<"* A: 新建链表 "<<endl;
cout<<"* B: 插入新值 "<<endl;
cout<<"* C: 删除表值 "<<endl;
cout<<"* D: 打印链表 "<<endl;
cout<<"* E: 释放内存 "<<endl;
cout<<"********请输入你的操作*******"<<endl;
cout<<"输入有误,请重新输入"<<endl;
c=getchar();}
switch(c)
{
case 'A': creat(p); break;
case 'B': insert(head);break;
case 'C': del(head);break;
case 'D': print(head);break;
case 'E' :{delete p;
cout<<"按任意键退出"<<endl;
goto end;
break;}
}
goto star;
end:
return 0;
}
//图形
void picture()
{
for(int i=1;i<30;i++)
cout<<'*';
cout<<endl;
}
//创建
void creat(stu *p)
{
stu *tail;
cout<<"输入学生学号"<<endl;
cin>>p->number ;
cout<<"输入学生姓名"<<endl;
cin>>p->name ;
while(p->number!=0)
{
tail=p;
p=new stu;
tail->next =p;
cout<<"输入学生学号"<<endl;
cin>>p->number ;
if(p->number !=0)
{
cout<<"输入学生姓名"<<endl;
cin>>p->name ;
}
p->next =NULL;
}
}
//打印
void print(stu*head)
{
stu *s;
for(s=head;s!=NULL;s=s->next )
cout<<s->name <<endl<<s->number <<endl;
}
//插入
void insert(stu*head)
{int number;
stu *p,*s;
cout<<"请指入插入位置前的学号"<<endl;
cin>>number;
for(s=head;s!=NULL;s=s->next )
if(s->number ==number)
{
p=new stu;
p->next =s->next ;
s->next=p;
cout<<"输入学生学号"<<endl;
cin>>p->number ;
cout<<"输入学生姓名"<<endl;
cin>>p->name ;
}
}
//删除
void del(stu*head)
{
int number;
stu *s;
cout<<"请指入删除位置的前一个学号"<<endl;
cin>>number;
for(s=head;s!=NULL;s=s->next )
if(s->number ==number)
s->next=s->next ->next ;
}