用二叉树表示家谱关系并实现各种查找功能扩展目的:掌握二叉树遍历算法的应用熟练使用先序、中序、后序三种递归遍历算法进行二叉树问题的求解。内容:编写一个程序exp9cpp采用一棵二叉树表示一个家谱关系由若干家谱记录构成每个家谱记录由父亲妻子和儿子的姓名构成其中姓名是关键字要求程序具有以下功能。①文件操作功能:家谱记录的输入家谱记录的输出清除全部文件记录和将家谱记录存盘。要求在输入家谱记录时按从祖先到子
实现思路:
- 定义家谱记录的结构体,包含父亲姓名、妻子姓名、儿子姓名和指向左右儿子的指针。
- 定义二叉树的结构体,包含根节点和二叉树大小。
- 实现家谱记录的输入、输出、存盘和清空功能,可使用文件操作实现。
- 实现将家谱记录构建成二叉树的函数,按照从祖先到子孙的顺序输入,每个家谱记录的父亲域为上一个家谱记录的姓名。
- 实现用括号表示法输出家谱二叉树的函数,采用先序遍历,输出格式为:父亲姓名(妻子姓名,儿子姓名1,儿子姓名2,...)。
- 实现查找某人的所有儿子的函数,采用中序遍历,遍历到该人时输出其所有儿子的姓名。
- 实现查找某人的所有祖先的函数,采用后序遍历,遍历到该人时输出其所有祖先的姓名。
代码实现:
原文地址: https://www.cveoy.top/t/topic/fKRp 著作权归作者所有。请勿转载和采集!