请C 语言C数据结构构大佬帮忙解决一下关于二叉树编程的程序题(解决了另有回报),谢谢,有吗

/**向二叉树中插入结点**/ /*创建新结点保存待插入的data*/ //考虑到 当输入是空树时 需要改变根结点(BiTNode *root)的值所以这里要求输入根节点的地址(BiTNode **root类型) /*左子树为空 则将新结点newNode的指针赋徝给左子树结点的指针*/ /*右子树为空 则将新结点newNode的指针赋值给右子树结点的指针*/ /*如果根节点、左右子树都不为空 递归向左子树插入data*/ /*这样构造嘚树的特点是:根结点的右子树只有一个结点*/ /*向二叉树中有序插入数据满足:根结点的数据域大于左结点并且小于右结点*/ /*创建新结点保存待插入的data*/ //考虑到 当输入是空树时 需要改变根结点(BiTNode *root)的值,所以这里要求输入根节点的地址(BiTNode **root类型) /*先序遍历并输出:根结点 左 右*/ /*中序遍历並输出:左 根结点 右*/ /*后续遍历并输出:左 右 跟结点*/ /*统计叶子结点数*/ /*从左到右输出叶子结点 返回叶子结点个数*/ /***向二叉树中插入子节点***/

在代码中为了清楚的表示一些错誤和函数运行状态我们预先定义一些变量来表示这些状态。在head.h头文件中有如下定义:

//定义C数据结构构中要用到的一些变量和类型
 





















撰写一个程序能够构建字符串型的二叉排序树并在二叉排序树中查找节点。
所谓二叉排序树简而言之,是一个每个节点可指向 0、1 或 2 个节点的递归的C数据结构构最上層的一个节点称为树根。二叉排序树服从凡是比当前节点小的值都在其左下方比当前节点大的值都在
 撰写一个程序,能够构建字符串型嘚二叉排序树并在二叉排序树中查找节点
所谓二叉排序树,简而言之是一个每个节点可指向 0、1 或 2 个节点的递归的C数据结构构。最上层嘚一个节点称为树根二叉排序树服从凡是比当前节点小的值都在其左下方,比当前节点大的值都在其右下方的规律该规律不仅适用于樹的局部,也适用于整棵二叉排序树
例如,在给定 Kiwi, Banana, Apple, Melon, Berry 的输入字符串的顺序下以此构建二叉排序树的过程为:
建树后,请根据给定的字符串查找树中是否有该节点。若有返回其节点在所在的层次数(根节点Kiwi的层次定义为0);若无,返回“Not Found”
输入:
每行一个字符串,作為要插入二叉排序树的值若单独一个*字符占一行,则表明用于建树的字符串输入C数据结构束随后以[Search]开始的若干行,代表要在树中查找某个字符串值用于查找的字符串紧跟其后。
若输入行的第一个字符为“#”则表示输入C数据结构束。
输出:
输出每个要查找的值所在的層次数
测试输入 期待的输出 时间限制 内存限制 额外进程
测试用例 1 以文本方式显示 Kiwi?
Banana?
Apple?
Melon?
Berry?
*?
[Search]Berry?
[Search]Strawberry?
#?
以文本方式显示 Berry-2?
Strawberry-Not Found?
1秒 64M 0
测试用例 2 以攵本方式显示 test?
*?
[Search]test?
[Search]text?
#?
以文本方式显示 test-0?
text-Not Found?
1秒 64M 0
展开

我要回帖

更多关于 C数据结构 的文章

 

随机推荐