假设二叉树中每个结点值为单个字符,采用二叉链存储结构存储,设计一个算法求二叉树bt的最小枝长,所谓最小枝长指的是根结点到最近叶子结点的路径长度。
2条回答 默认 最新
关注 - 这篇博客也许可以解决你的问题👉 :设计一个递归算法由二叉树BT复制产生另一棵二叉树BT1(假设二叉树采用二叉链存储结构)
- 除此之外, 这篇博客: 设计一个递归算法由二叉树BT复制产生另一棵二叉树BT1(假设二叉树采用二叉链存储结构)中的 设计一个递归算法由二叉树BT复制产生另一棵二叉树BT1(假设二叉树采用二叉链存储结构) 部分也许能够解决你的问题, 你可以仔细阅读以下内容或跳转源博客中阅读:
源代码如下:
#include <iostream> using namespace std; //二叉树的结构 typedef struct BTNode { char data; struct BTNode *left; struct BTNode *right; }BTNode; //由二叉树BT复制产生另一棵二叉树BT1 void copyBTree(BTNode*BT, BTNode*&BT1) { if (BT==NULL) { BT1 = NULL; }else{ BT1 = (BTNode*)malloc(sizeof(BTNode)); BT1->data = BT->data; copyBTree(BT->left, BT1->left); copyBTree(BT->right, BT1->right); } } //根据先序序列和中序序列递归创建二叉树 BTNode * BTCreate(char a[], char b[], int n) { int k; if (n == 0) { return NULL; } int root = a[0]; BTNode *BT = (BTNode *)malloc(sizeof(BTNode)); BT->data = root; //树根的值可以确定了 for (k = 0; k < n; k++) { //在b中查找b[k]=root的根节点 if (b[k] == root) { break; } } BT->left = BTCreate(a + 1, b, k); //递归创建左子树 BT->right = BTCreate(a + k + 1, b + k + 1, n - k - 1); //递归创建右子树 return BT; } void PreOrder(BTNode *BTNode) { if (BTNode == NULL) return; cout << BTNode->data << " "; PreOrder(BTNode->left); //递归调用,先序遍历左子树 PreOrder(BTNode->right); //递归调用,先序遍历右子树 } int main() { int n = 0; cout << "请输入序列个数" << endl; cin >> n; char *a = new char[n]; cout << "请输入先序序列" << endl; for (int i = 0; i < n; i++) { cin >> a[i]; } char *b = new char[n]; cout << "请输入中序序列" << endl; for (int i = 0; i < n; i++) { cin >> b[i]; } BTNode *BT = NULL; BT = BTCreate(a, b, n); //创建成功 PreOrder(BT); //检验是否创建成功 cout << endl; BTNode *BT1 = NULL; copyBTree(BT, BT1); PreOrder(BT1); //检验是否复制成功 cout << endl; system("pause"); return 0; }
输出为:
请输入序列个数
8
请输入先序序列
a b d g c e f h
请输入中序序列
d g b a e c h f
a b d g c e f h
a b d g c e f h
请按任意键继续. . .
解决 无用评论 打赏 举报
悬赏问题
- ¥15 unity从3D升级到urp管线,打包ab包后,材质全部变紫色
- ¥50 comsol温度场仿真无法模拟微米级激光光斑
- ¥15 上传图片时提交的存储类型
- ¥15 VB.NET如何绘制倾斜的椭圆
- ¥15 arbotix没有/cmd_vel话题
- ¥15 odoo17的分包重新供应路线如何设置?可从销售订单中实时直接触发采购订单或相关单据
- ¥15 用C语言怎么判断字符串的输入是否符合设定?
- ¥15 通信专业本科生论文选这两个哪个方向好研究呀
- ¥50 我在一个购物网站的排队系统排队,这个排队到号后重新定向到目标网站进行购物,但是有技术牛通过技术方法直接跳过排队系统进入目标网址购物,有没有什么软件或者脚本可以用
- ¥15 ios可以实现ymodem-1k协议 1024字节传输吗?