ndl; cout<<"-------------------------------"<<endl; p=p->next;?}}时间复杂度:o(n)2.2.7通讯录的析构通讯录的析构即为单链表的析构,比较简单C++实现://析构函数ContactBook::~ContactBook(){?Node*p=front;?while(p){ front=p; p=p->next; deletefront;?}}时间复杂度:(n)2.3其他3.程序运行结果主函数流程图:结束开始创建通讯簿类对象初始化建立添加退出查看修改查找删除是否是否退出测试截图:1.建立通讯簿2.添加新用户3.查找用户4.删除用户5.查看所有用户6.修改已有用户7.退出通讯簿管理系统4.总结通过这次的数据结构上机试验,让我回顾了有关线性表这一章的知识,学会使用线性表解决实际问题,让我有了更深的认识和了解,能灵活的使用,同时也发现了自己的不足,有些地方理解还不够深刻,出现了不少问题调试时问题主要出在存错误上,有时指针悬挂,有时尾指针指向错误,这些都需要一步步耐心的调试才能发现,以后编程我会注意改正这些依照实验要求,在不同操作时加入了异常处理,比如要查找,删除,修改用户时,如果输入的ID不存在,系统会报错并终止操作,提高了系统的操作性这次设计的通讯簿管理系统还有些可以改进的地方,比如加入文件流后可以将每次输入的信息保存在后台的一个文件里,每次使用时读取这个文件的信息,实现了保存每次更新的数据。我对于文件流的使用还不是很熟悉,所以没来及加入这项功能;还有在查询这一块,只实现了按编号查询,还未加入按查找。附:所有源程序#include<iostream>usingnamespacestd;//个人数据结构体structDataType{?intID;//用户ID;?charname[10];//?charch;//性别