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

假设一棵平衡二叉树的每个结点都表明了平衡因子b,试设计一个算法,求平衡二叉树的高度。

typedef struct Node
{
	int data;
	int bf;//平衡因子
	struct Node* lchild;
	struct Node* rchild;
}Node;

//创建节点
Node* Create(int data, int bf)
{
	Node* newnode = (Node*)malloc(sizeof(Node));
	newnode->data = data;
	newnode->bf = bf;
	newnode->lchild = newnode->rchild = NULL;
	return newnode;
}

int Height(Node* root)
{
	int level = 0;
	Node* T = root;
	while (T)
	{
		level++;//根节点存在++1;
		if (T->bf < 0)
		{
			//<0那就是右边 > 左边
			T = T->rchild;//找更深的分支下去
		}
		else
		{
			T = T->lchild;
		}
	}
	return level;
}
int main()
{
	Node* root = Create(28, 0);
	root->lchild = Create(25, 1);
	root->rchild = Create(31, 0);
	root->lchild->lchild = Create(16, 0);
	root->rchild->lchild = Create(30, 0);
	root->rchild->rchild = Create(47, 0);

	int high = Height(root);
	printf("这棵平衡二叉树的高度为%d", high);
	return 0;
}


http://www.kler.cn/a/398090.html

相关文章:

  • 【C++】构造函数
  • PyAEDT:Ansys Electronics Desktop API 简介
  • 网络安全之WINDOWS端口及病毒编写
  • Dubbo 3.x源码(25)—Dubbo服务引用源码(8)notify订阅服务通知更新
  • 从零开始学习 sg200x 多核开发之 uboot 网络功能使能
  • 插入排序——希尔排序
  • ChatGPT 搜索 vs Google 搜索
  • stm32学习之路——LED闪烁实验
  • SSH隧道连接(基于linux)
  • 【366】基于springboot的高校物品捐赠管理系统
  • Python常用魔术方法 (学习笔记)
  • Prometheus面试内容整理-PromQL 查询语言
  • 【软件测试】设计测试用例的万能公式
  • git简介和本地仓库创建,并提交修改。git config init status add commit
  • 开启鸿蒙开发之旅:交互——点击事件
  • 领夹麦克风哪个品牌好,手机领夹麦克风哪个牌子好,选购推荐
  • redis集群:怎么找到AOF文件的位置
  • 每日一博 - Java的Shallow Copy和Deep Copy
  • JMeter与大模型融合应用之JMeter日志分析服务化实战应用
  • 使用 Pytorch 搭建视频车流量检测资源(基于YOLO)
  • 提取双栏pdf的文字时 输出文件顺序混乱
  • opencv(c++)----图像的读取以及显示
  • Springboot maven常见依赖、配置文件笔记
  • vue | 劫持原理
  • 【HarmonyOS NEXT】实战——登录页面
  • k8s1.21.1 etcd服务备份恢复