当前位置: 首页 > news >正文

wordpress会员互动/苏州优化网站公司

wordpress会员互动,苏州优化网站公司,html网站建设实录,东莞玩具加工东莞网站建设题目 二叉树结点的平衡因子(bf)定义为该结点的左子树高度与 右子树高度之差。设二叉树结点结构为:(lchild,data,bf,rchild), lchild,rchild 是左右儿子指针;data 是数据元素;bf 是平衡因子,编写递归算法计…

题目

二叉树结点的平衡因子(bf)定义为该结点的左子树高度与
右子树高度之差。设二叉树结点结构为:(lchild,data,bf,rchild),
lchild,rchild 是左右儿子指针;data 是数据元素;bf 是平衡因子,编写递归算法计算二叉树中各个结点的平衡因子。

广告

若有同学需要桂林电子科技大学数据结构考研真题和答案解析(个人制作)或指定参考书《算法与数据结构》第三版张乃孝PDF等资料的欢迎交流(QQ((肆+壹)幺幺)&微信(月球不太圆)15577498906)

算法思路

通过后序遍历来遍历二叉树的每一个结点,然后计算每一个结点平衡因子。平衡因子等于左子树高度与右子树高度之差。故需要求出左子树和右子树的高度,也是算法的核心难点。
求出左子树和右子树的高度的算法是high(TreeNode * t),t有三种情况,1为空,2是指向叶子结点,3是指向非叶子的结点。第一种情况,返回0,第二种情况,返回1,第三种情况复杂,需要再次调用high(TreeNode * t),返回1+自己的最大子树高度。

代码

#include <iostream>
#include <bits/stdc++.h>
using namespace std; 
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
typedef struct TreeNode TreeNode;
struct TreeNode {int val;TreeNode *left;TreeNode *right;int bf=0;TreeNode(int x) : val(x), left(NULL), right(NULL) {}
}; 
TreeNode* CreateBTree();
TreeNode* CreateBTree()
{TreeNode *bt = NULL;int ch;scanf("%d", &ch);if (ch != -1){bt = new TreeNode(ch);bt->val = ch;bt->left = CreateBTree();bt->right = CreateBTree();}return bt;
}
void PutTree(TreeNode* bt)
{if(bt==NULL)return;else{printf("%d 平衡因子%d ",bt->val,bt->bf);PutTree(bt->left);PutTree(bt->right);}
}
int max(int a,int b)
{if(a>b)return a;elsereturn b;
}
int high(TreeNode * t)
{if(t!=NULL){if(t->left==NULL&&t->right==NULL)return 1;elsereturn 1+max(high(t->left),high(t->right));}elsereturn 0;
}
void visit(TreeNode * t)
{t->bf=high(t->left)-high(t->right);
}
void func(TreeNode * t)
{if(t!=NULL){func(t->left);func(t->right);visit(t);}
}
int main(int argc, char** argv) {TreeNode *bt=CreateBTree();func(bt);PutTree(bt);return 0;
}

运行结果

输入1 2 3 -1 4 -1 -1 -1 5 6 7 -1 -1 -1 8 -1 9 -1 -1
按照先序遍历的顺序建立二叉树(其中字符’-1’代表空节点)
在这里插入图片描述
在这里插入图片描述

http://www.jmfq.cn/news/5209219.html

相关文章:

  • 中国做网站的公司有哪些/百度西安分公司地址
  • 做学校子网站/免费个人网站模板
  • 开淘宝店做网站开发/个人如何注册网站
  • 网站建站网站80s隐秘而伟大/同城广告发布平台
  • 网站响应式图片切换代码/2023知名品牌营销案例100例
  • wordpress 评论 楼层/广州seo网站公司
  • vip解析网站如何做/怎么快速推广自己的产品
  • 网站建设主要包括哪两个方面/百度网站收录查询
  • wordpress注册密码插件/淘宝seo关键词的获取方法有哪些
  • 做网站的收益在哪/淘宝关键词排名怎么查
  • 企业网站建设总结/91手机用哪个浏览器
  • 杭州市政府门户网站建设/长沙sem培训
  • 永年专业做网站/seo职位描述
  • 北京建设招标信息网站/网络营销主要做什么
  • 免费的报告网站/软件编程培训学校排名
  • 邯郸市网站建设/友情链接购买网站
  • 黑客网站网址大全/青岛网站快速排名提升
  • 网页模板快速建站工具/yandex搜索引擎入口
  • 帮忙做公司网站/技能培训有哪些
  • 陕西专业网站开发公司/吸引顾客的营销策略
  • 企业网站建设技巧/专业seo培训学校
  • 网站管理难做吗/备案查询
  • 深圳建网站哪个好/seo外链优化策略
  • 怎样优化排名自己网站/最新战争新闻事件今天
  • wordpress不适合做大站/中国网站排名
  • 做婚纱摄影网站多少钱/培训机构排名全国十大教育机构排名
  • java 做直播网站有哪些软件/百度电话客服24小时人工服务热线
  • 做视频比较好的理财网站/站长网站查询工具
  • 网站英文域名是什么/新产品怎样推广
  • 网站建设服务好公司/seo优化快速排名