}DATA; //数据结点类型 typedef struct Node { DATA data; struct Node *next; }ChainListType,*LinkList;
int CreastList(LinkList &L) { int i,x;
printf(\请输入联系人个数:\ scanf(\ LinkList p,q;
L=(LinkList)malloc(sizeof(Node)); L->next=NULL; p=L;
for(i=0;i q->next=NULL; p->next=q; } return x; } void ListPrint(LinkList L) { LinkList p; p=L->next; while(p) p=p->next; } { printf(\p=q; q=(LinkList)malloc(sizeof(Node)); printf(\请输入联系人电话,姓名,类别\\n\ scanf(\ 9 } void ListInsert(LinkList &L,int x) { LinkList p,s; int i; printf(\请输入插入位置:\ scanf(\ int j=0; p=L; while(p&&j {p=p->next;++j;} //查找第i-1个元素的位置 if(!p||i>x) { printf(\插入位置错误\\n\ return ;} //没有找到 printf(\请输入插入联系人的信息:\ s=(LinkList)malloc(sizeof(Node)); scanf(\ s->next=p->next; //将新结点插入到单链表中 p->next=s; } void GetElem(LinkList L) { char ch[20]; int flag=0; LinkList p; printf(\请输入要查找的联系人姓名\ scanf(\ p=L; while(p!=NULL) { if(strcmp(p->data.name,ch)!=0) 10 { else } { } printf(\flag=1; p=p->next; } if(flag==0) printf(\无此号码\} void ListDelete(LinkList &L) { LinkList p,q; char ch[11]; int flag=0; printf(\请输入要删除的号码:\\n\ scanf(\ p=L->next; q=L; while(p!=NULL) { if(strcmp(p->data.phonenumber,ch)==0) { q->next=p->next; free(p); flag=1; p=q->next; } else { } p=p->next; q=q->next; 11 } if(flag==0) printf(\无此号码\ } //1.cpp #include int i,x,flag=1; LinkList L; while(flag) { printf(\功能列表:\\n\ printf(\添加联系人\\n\ printf(\显示联系人\\n\ printf(\插入联系人\\n\ printf(\删除联系人\\n\ printf(\查找联系人\\n\ printf(\退出程序 \\n\ printf(\请选择:\\n\ scanf(\ switch(i) { case 1:x=CreastList(L);break; case 2:ListPrint(L);break; case 3:ListInsert(L,x);break; case 4:ListDelete(L);break; case 5:GetElem(L);break; default:flag=0;printf(\程序结束,按任意键退出!\\n\} 12
相关推荐: