7-5 顺序存储的二叉树的最近的公共祖先问题(25 分)
设顺序存储的二叉树中有编号为i和j的两个结点,请设计算法求出它们最近的公共祖先结点的编号和值。
输入格式:
输入第1行给出正整数n(≤),即顺序存储的最大容量;第2行给出n个非负整数,其间以空格分隔。其中0代表二叉树中的空结点(如果第1个结点为0,则代表一棵空树);第3行给出一对结点编号i和j。
题目保证输入正确对应一棵二叉树,且1。
输出格式:
如果i或j对应的是空结点,则输出ERROR: T[x] is NULL,其中x是i或j中先发现错误的那个编号;否则在一行中输出编号为i和j的两个结点最近的公共祖先结点的编号和值,其间以1个空格分隔。
输入样例1:
15
4 3 5 1 10 0 7 0 2 0 9 0 0 6 8
11 4
输出样例1:
2 3
输入样例2:
15
4 3 5 1 0 0 7 0 2 0 9 0 0 6 8
12 8
输出样例2:
ERROR: T[12] is NULL
这等同于完全二叉树,根据完全二叉树的性质进行操作——第N个节点的左孩子编号为2N,右孩子为2N+1.其实就是不断的除二。注:如果i,j相距很远,需要先对大的进行操作,缩进距离。
#include<stdio.h>
#include<iostream>
#include<algorithm>
#define maxn 1500
using namespace std;
int f[maxn],n;
int f1,f2;
void getf()
{if(f[f1]==0)printf("ERROR: T[%d] is NULL",f1);else if(f[f
7-5 顺序存储的二叉树的最近的公共祖先问题(25 分)相关推荐
- 7-6 顺序存储的二叉树的最近的公共祖先问题 (10 分)
7-6 顺序存储的二叉树的最近的公共祖先问题 (10 分) 设顺序存储的二叉树中有编号为i和j的两个结点,请设计算法求出它们最近的公共祖先结点的编号和值. 输入格式: 输入第1行给出正整数n(≤100 ...
- 顺序存储的二叉树的最近的公共祖先问题
习题4.5 顺序存储的二叉树的最近的公共祖先问题 (25 分) 设顺序存储的二叉树中有编号为i和j的两个结点,请设计算法求出它们最近的公共祖先结点的编号和值. 输入格式: 输入第1行给出正整数n(≤1 ...
- 7-4 (小字辈) 7-5 (列出叶结点) 7-6 (顺序存储的二叉树的最近的公共祖先问题)
目录 7-4 小字辈 7-5 列出叶结点 7-6 顺序存储的二叉树的最近的公共祖先问题 总结: 7-4 小字辈 原题链接:题目详情 - 7-4 小字辈 (pintia.cn) 思路: 利用一维数组下标 ...
- 十九、二叉树的最近的公共祖先
十九.二叉树的最近的公共祖先 文章目录 十九.二叉树的最近的公共祖先 题目描述 解题思路 上机代码: 题目描述 设顺序存储的二叉树中有编号为 i 和 j 的两个结点,请设计算法求出它们最近的公共祖先结 ...
- python代码实现二叉树中最低的公共祖先
python代码实现二叉树中最低的公共祖先 给定一个二叉搜索树, 找到该树中两个指定节点的最近公共祖先. 最近公共祖先的定义为:"对于有根树 T 的两个结点 p.q,最近公共祖先表示为一个结 ...
- 7-4 二叉树的遍历!(简单) (25 分)
7-4 二叉树的遍历!(简单) (25 分) 二叉树作为FDS课程最核心的数据结构之一,要求每个人都掌握! 这是一道简单的二叉树问题! 我们将给出一颗二叉树,请你输出它的三种遍历,分别是先序遍历,中序 ...
- 二叉树:最近的公共祖先 Lowest Common Ancestor of a Binary Tree
已知二叉树,求二叉树中给定的两个节点的最近公共祖先. 最近公共祖先: 两节点v与w的最近公共祖先u,满足在树上最低(离根最 远),且v,w两个节点都是u的子孙. 如上二叉树,6和8号节点的公共祖先有4 ...
- 二叉树中的最近公共祖先
对于二叉树中任意两个结点p和q,可能存在如下的情形: p是q的祖先,此时p是p和q的最近公共祖先 q是p的祖先,此时q是p和q的最近公共祖先 p和q没有父子关系. 如果设p和q的最近公共祖先为x.如果 ...
- 【学透二叉树-二叉搜索树(二叉树)的最近公共祖先】
示例: 代码实现: class Solution {public TreeNode lowestCommonAncestor(TreeNode root, TreeNode p, TreeNode q ...
最新文章
- 什么是假设检验(hypothesis test)?什么是正态性检验(normality test)?
- 结合案例深入解析:抽象工厂模式
- freemarker的常用内建函数
- python查看函数定义_从函数内函数定义看python的函数实现
- 【洛谷4389】付公主的背包(生成函数,多项式运算)
- Hive体系结构(二)Hive的执行原理、与关系型数据库的比较
- axure文本框值相加_Axure教程:计数文本域实现
- LeetCode(合集)括号 golang
- java imap 乱码_php imap/pop3 接收邮件类,解决中文乱码
- Node.js 爬虫初探
- Bzoj 4371: [IOI2015]sorting排序 二分
- redis info 信息
- 阮一峰ES6入门读书笔记(十一):Promise
- PHP设计聊天室步步通
- 非致命战计算机病毒战属于,《信息化战争》章节
- LabVIEW两种方法实现Excel数据(含汉字)读取
- 三位数码管电路设计实验
- 基于Gitee搭建免费图床
- cork--快速,精确的线性布尔运算
- 大富豪3(GM商城版)新手攻略之购买土地