假设一棵平衡二叉树的每个结点都表明了平衡因子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;
}
相关推荐
czlczl200209257 小时前
算法:二叉树的公共祖先
算法
稚辉君.MCA_P8_Java7 小时前
Gemini永久会员 Java动态规划
java·数据结构·leetcode·排序算法·动态规划
oioihoii7 小时前
C++语言演进之路:从“C with Classes”到现代编程基石
java·c语言·c++
小白程序员成长日记8 小时前
2025.11.23 力扣每日一题
算法·leetcode·职场和发展
cookqq8 小时前
mongodb根据索引IXSCAN 查询记录流程
数据结构·数据库·sql·mongodb·nosql
16_one8 小时前
autoDL安装Open-WebUi+Rag本地知识库问答+Function Calling
人工智能·后端·算法
ohyeah9 小时前
栈:那个“先进后出”的小可爱,其实超好用!
前端·数据结构
散峰而望10 小时前
C++数组(三)(算法竞赛)
开发语言·c++·算法·github
q***952210 小时前
SpringMVC 请求参数接收
前端·javascript·算法
初级炼丹师(爱说实话版)10 小时前
多进程与多线程的优缺点及适用场景总结
算法