数据结构实验一 通讯录 下载本文

北京邮电大学信息与通信工程学院

时间复杂度:o(n)

2.2.5通讯录的修改

当用户要进行修改用户操作时,会在主函数输入要修改用户的ID,调用查询模块,若用户存在,系统会显示找到的用户信息,然后要求依次输入该用户新的的编号,姓名,性别,手机号,地址,输入这些后,用户信息被修改

C++实现: //通讯簿修改

void ContactBook::Modify(DataType a,int i) { DataType * p=Get(i); //按ID找到要修改的用户 * p=a; //修改用户的个人数据 }

时间复杂度:o(n)

2.2.6通讯录的遍历显示

用户选择输出通讯录,系统会依次输出所有用户的信息 输出的基本思想是:只要将表头的指针赋给一个指针变量p,然后用p向后扫描,直到表尾,p为空值。

C++实现: //通讯簿遍历

void ContactBook::PrintList() { Node * p=front->next; cout<<\您的通讯簿信息如下:\ cout<<\ while(p) { cout<data.ID<<\\\\\ cout<next; } }

时间复杂度:o(n)

2.2.7通讯录的析构

通讯录的析构即为单链表的析构,比较简单

C++实现: //析构函数

第5页

北京邮电大学信息与通信工程学院

ContactBook::~ContactBook() { Node *p=front; while(p){ front=p; p=p->next; delete front; } }

时间复杂度:(n)

2.3 其他

3. 程序运行结果

主函数流程图: 建立

测试截图: 1.建立通讯簿

开始 创建通讯簿类对象 初始化 添加 查找 删除 修改 查看 退出 否 是否退出 是 结束 第6页

北京邮电大学信息与通信工程学院

2.添加新用户

3.查找用户

第7页

北京邮电大学信息与通信工程学院

4.删除用户

第8页