每日一题———28.二叉树中寻找编号为i和j的最近祖先节点(顺序存储)

前言

数据结构每日一题

声明:因个人能力有限,本文仅是个人的学习记录笔记,有错误之处还望指出

题目

给定一个二叉树按顺序存储,要求设计一个算法实现寻找结点 i 和 j 的最近祖先节点

相关知识

  • 二叉树的顺序存储(完全二叉树和满二叉树用此方式比较多,而在普通二叉树的情况下会将其补充数据伪装成一个满二叉树来存储,方便使用满二叉树的特性)
  • 为了维持二叉树的节点顺序和数组顺序一致可以从1开始存储
  • 祖先节点是子节点的 1/2

思想

  • 要注意判断结点的值信息
  • 不断的将较大的结点值取一半,知道 i 和 j 相等
Elemtype ComAncestor(sqtree T,int i,int j){
	//判断节点的位置合理性
	if(T[i] != NULL && T[j] != NULL){
	while( i!=j){
		if(i>j)
			i=i/2;	//i大i取一半
		else
			j=j/2;	//j大j取一半
	}
}
	return i;
}
而塞过 2021-6-13
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值