1.2 功能要求
本项目的实质是完成兑家谱成员信息的建立,查找,插入,修改,删除等功能,可以首先定义家族成员数据结构,然后将每个功能作为一个成员函数来完成对数据的操作,最后完成主函数以验证各个函数功能并得到运行结果。
二、设计
2.1 Node 类设计
Node 类是一个模板类,存储一个 T 类型的值和两个指针,分别是代表指向兄弟节点的 next 指针和指向自己子节点的 link 指针。
2.2 LinkedList 类设计
首先,LinkedList 依旧是模板类,它存储了两个成员变量,分别是代表家谱祖先的 root 节点,以及将来用于代表所操作的人物的 curFind。主要有六个 public 函数,分别是:
- add(T familyRoot) 传入的是祖先名字,创建家谱中第一个元素。
- void add(T familyName,T childName) 给家谱中的某个人添加子女。
- void deleteFromTree(T fatherName) 删除家谱中的某个人,连带子女一起从家谱中删除。
- void update(T fatherName,T updateName)更改家谱中某个人的姓名
- void show(T familyName)展示家谱中某个人的子女
- bool findFromTree(T familyName)找出在家谱中这个人是否存在
还有一个 private 函数:
void findFromTree(Node&l