定制魏:QTWZPW,获取更多源码等
目录
题目
设计一个家谱管理系统,能够进行家谱树的构建、节点的增删改查以及不同遍历方式的展示。根据给定的代码实现,对其进行分析。
要求
基本功能
1)自建测试数据,根结点是你自己的名字,初始树的高度至少为4,结点数量至少为10,每个结点的值不要重复;(10分)2)系统提供菜单,显示以及可以选择相应的功能;(8分)
3)初始树的数据从文件载入,文件格式自定;(10分)
4)按树的显示方式显示树,同时显示其高度、结点数;(12分)5) 新增结点功能,操作逻辑自行实现;(10分)
6)删除结点功能,操作逻辑自行实现;(10分)
7)修改结点功能,操作逻辑自行实现;(10分)
8)树被修改后,也就是经过上述三种操作后,立即重新显示;(9分)9)给出先根、后根以及层序遍历的三种顺序;(9分)
10)系统退出后,修改的数据自动存储到文件。(12分)
数据结构
该家谱管理系统使用了以下数据结构:
TreeNode 结构体:
- 表示家谱树中的节点,包含节点名称和孩子节点的指针向量。
FamilyTree 类:
- 包含根节点指针、树高度、节点数量和文件名等属性。
- 使用根节点指针构建家谱树。
函数设计
loadFromFile() 和 saveToFile() 函数:
- 用于从文件加载家谱数据和将家谱数据保存到文件中。
addNode()、deleteNode() 和 modifyNode() 函数:
- 提供了节点的新增、删除和修改功能。
- 使用递归实现对节点的操作。