#include
#include
#include
using namespace std;
struct PhoneBook
{
char name[20];
char number [15];
PhoneBook *next;
};
void print(PhoneBook*head);
PhoneBook *creat();
void swap(PhoneBook*head);
PhoneBook*insert(PhoneBook*head,PhoneBook*phonenum);
int main()
{
PhoneBook *p,*head;
head=creat();
swap(head);
cout<<"建立的链表为:"<
print(head);
cout
gets(p->name) ;
gets(p->number);
head=insert(head,p);
cout<<"添加之后的链表为:";
print(head);
return 0 ;
}
PhoneBook*creat()
{
cout<<"现在建立电话本,请依次输入姓名及电话号码:";
PhoneBook *p1,*p2,*head;
head=NULL;
p1=new PhoneBook;
p2=p1;
gets(p1->name);
gets(p1->number) ;
while(p1->name !="000")
{
cout<<"请输入下一个:"<
if(head==NULL)
head=p1;
else p2->next =p1;
p2=p1;
p1=new PhoneBook;
gets(p1->name);
gets(p2->number);
}
p2->next=NULL;
delete p1;
return head;
}
void print(PhoneBook*head)
{
PhoneBook *p;
p=head;
while(p!=NULL)
{
cout<name<<" ";
cout<number <
p=p->next;
}
}
PhoneBook*insert(PhoneBook*head,PhoneBook*phonenum)
{
PhoneBook *p;
p=head;
if(p==NULL)
{
head=phonenum;
head->next =NULL;
return 0;
}
if(strcmp(p->name,phonenum->name)>0)
{
phonenum->next =head;
head=phonenum;
return head;
}
while(p->next &&strcmp(p->next->name ,phonenum->name )>0)
{p=p->next ;}
phonenum->next=p->next;
p->next=phonenum;
return head;
}
void swap(PhoneBook*head)
{
PhoneBook *p1,*p2;
p1=head;
p2=p1->next;
for(;p1!=NULL;)
{ for(;p2!=NULL;)
PhoneBook*temp=head;
if(strcmp(p1->name ,p2->name)>0)
{*temp=*p2;
*p2=*p1;
*p1=*temp;
}
p2=p2->next;
}
p1=p1->next;
}
}
{