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

cs 复制代码
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;
}
相关推荐
J2虾虾7 分钟前
C语言 typedef 用法
c语言·数据结构·算法
hunterkkk(c++)16 分钟前
线段树例题
算法
故渊at26 分钟前
第二板块:Android 四大组件标准化学理 | 第七篇:Activity 页面载体与任务栈算法
android·算法·生命周期·activity·任务栈
兰令水33 分钟前
leecodecode【区间DP+树形DP】【2026.6.10打卡-java版本】
java·算法·leetcode
budingxiaomoli1 小时前
二叉树中的深搜
数据结构
weixin199701080161 小时前
[特殊字符] 1688开放平台API Sign签名算法详解(Java / Python / PHP 实现)
java·python·算法
断点之下1 小时前
数据结构从零开始④:堆——一种特殊的完全二叉树(附堆排序、TopK问题)
数据结构
WL学习笔记1 小时前
顺序表详解
c语言·数据结构
sugar__salt1 小时前
深入吃透前端线性数据结构:数组、栈、队列、链表核心原理与实战
前端·数据结构·链表