文档详情

数据结构链表操作C++.doc

发布:2016-04-13约4.99千字共8页下载文档
文本预览下载声明
数据结构 C++ 链表管理 联系人管理 //file main.cpp #include iostream #include cstring #includefstream #include class.cpp using namespace std; void InitList(Person *L);//初始化 void Destroy(Person *L);//全部销毁 bool ListEmpty(Person * L);//判断表是否为空;空=true;非空=false; int ListLength(Person *L);//求表长 void Display(Person *L);//输出 PersonInfo InputInfo(char _name[]);//输入联系人,结构体对象 void Inset(Person *L,PersonInfo per);//头插法插入 bool FindPerson(Person *L,char _name[]);//判断联系人是否存在 void getPerson(Person *L ,char _name[]);//查找指定联系人 void Delete_data(Person * L,char _name[]);//删除目标元素 void SaveFile(Person *L );//保存到文件中 void GetFromFile(Person * L);//读取文件 void Order(); int scan();//扫描输入的数据 void main() { cout***通讯录***endl; Order(); char judgeName[20]; int quit=0; Person * list=new Person; InitList(list); GetFromFile(list); while (!quit) { switch(scan()) { case 0://弹出菜单 Order(); break; case 1://1.插入联系人 cout请输入姓名: ; cinjudgeName; if (!FindPerson(list,judgeName)) { Inset(list,InputInfo(judgeName)); } break; case 2://输出所有联系人 if(!ListEmpty(list)) { Display(list); } else cout通讯录为空endl; break; case 3://查找指定联系人 cout请输入姓名: ; cinjudgeName; getPerson(list,judgeName); break; case 4://删除联系人 cout请输入姓名: ; cinjudgeName; Delete_data(list,judgeName); break; case 5://统计 if (ListEmpty(list)) { cout通讯录为空endl; } else cout总共ListLength(list)个联系人endl; break; case 6: Destroy(list); cout已清空所有联系人endl; break; case 7://保存到磁盘 SaveFile(list); cout保存成功!endl; break; case 8: exit(0); break; default: quit=1; } } } void Order() { cout0.弹出菜单endl; cout1.插入联系人endl; cout2.输出所有联系人endl; cout3.查找联系人endl; cout4.删除联系人endl; cout5.统计endl; cout6.清空通讯录endl; cout7.保存通讯录endl; cout8.退出程序endl; } int scan() { int i=-1; cini; if (i=0i=10) { return i; } else return -1; } //初始化 void InitList(Person *L) {//带有头结点,头结点不存放数据 L-next=NULL; } //全部销毁 void Destroy(Person *L) { Person *pre=L-next
显示全部
相似文档