设顺序存储的二叉树中有编号为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 分)相关推荐

  1. 7-6 顺序存储的二叉树的最近的公共祖先问题 (10 分)

    7-6 顺序存储的二叉树的最近的公共祖先问题 (10 分) 设顺序存储的二叉树中有编号为i和j的两个结点,请设计算法求出它们最近的公共祖先结点的编号和值. 输入格式: 输入第1行给出正整数n(≤100 ...

  2. 顺序存储的二叉树的最近的公共祖先问题

    习题4.5 顺序存储的二叉树的最近的公共祖先问题 (25 分) 设顺序存储的二叉树中有编号为i和j的两个结点,请设计算法求出它们最近的公共祖先结点的编号和值. 输入格式: 输入第1行给出正整数n(≤1 ...

  3. 7-4 (小字辈) 7-5 (列出叶结点) 7-6 (顺序存储的二叉树的最近的公共祖先问题)

    目录 7-4 小字辈 7-5 列出叶结点 7-6 顺序存储的二叉树的最近的公共祖先问题 总结: 7-4 小字辈 原题链接:题目详情 - 7-4 小字辈 (pintia.cn) 思路: 利用一维数组下标 ...

  4. 十九、二叉树的最近的公共祖先

    十九.二叉树的最近的公共祖先 文章目录 十九.二叉树的最近的公共祖先 题目描述 解题思路 上机代码: 题目描述 设顺序存储的二叉树中有编号为 i 和 j 的两个结点,请设计算法求出它们最近的公共祖先结 ...

  5. python代码实现二叉树中最低的公共祖先

    python代码实现二叉树中最低的公共祖先 给定一个二叉搜索树, 找到该树中两个指定节点的最近公共祖先. 最近公共祖先的定义为:"对于有根树 T 的两个结点 p.q,最近公共祖先表示为一个结 ...

  6. 7-4 二叉树的遍历!(简单) (25 分)

    7-4 二叉树的遍历!(简单) (25 分) 二叉树作为FDS课程最核心的数据结构之一,要求每个人都掌握! 这是一道简单的二叉树问题! 我们将给出一颗二叉树,请你输出它的三种遍历,分别是先序遍历,中序 ...

  7. 二叉树:最近的公共祖先 Lowest Common Ancestor of a Binary Tree

    已知二叉树,求二叉树中给定的两个节点的最近公共祖先. 最近公共祖先: 两节点v与w的最近公共祖先u,满足在树上最低(离根最 远),且v,w两个节点都是u的子孙. 如上二叉树,6和8号节点的公共祖先有4 ...

  8. 二叉树中的最近公共祖先

    对于二叉树中任意两个结点p和q,可能存在如下的情形: p是q的祖先,此时p是p和q的最近公共祖先 q是p的祖先,此时q是p和q的最近公共祖先 p和q没有父子关系. 如果设p和q的最近公共祖先为x.如果 ...

  9. 【学透二叉树-二叉搜索树(二叉树)的最近公共祖先】

    示例: 代码实现: class Solution {public TreeNode lowestCommonAncestor(TreeNode root, TreeNode p, TreeNode q ...

最新文章

  1. 什么是假设检验(hypothesis test)?什么是正态性检验(normality test)?
  2. 结合案例深入解析:抽象工厂模式
  3. freemarker的常用内建函数
  4. python查看函数定义_从函数内函数定义看python的函数实现
  5. 【洛谷4389】付公主的背包(生成函数,多项式运算)
  6. Hive体系结构(二)Hive的执行原理、与关系型数据库的比较
  7. axure文本框值相加_Axure教程:计数文本域实现
  8. LeetCode(合集)括号 golang
  9. java imap 乱码_php imap/pop3 接收邮件类,解决中文乱码
  10. Node.js 爬虫初探
  11. Bzoj 4371: [IOI2015]sorting排序 二分
  12. redis info 信息
  13. 阮一峰ES6入门读书笔记(十一):Promise
  14. PHP设计聊天室步步通
  15. 非致命战计算机病毒战属于,《信息化战争》章节
  16. LabVIEW两种方法实现Excel数据(含汉字)读取
  17. 三位数码管电路设计实验
  18. 基于Gitee搭建免费图床
  19. cork--快速,精确的线性布尔运算
  20. 大富豪3(GM商城版)新手攻略之购买土地

热门文章

  1. PyTorch 按索引赋值
  2. 年龄估计bridgeNet
  3. pytorch CenterLoss
  4. pycharm全局修改
  5. OpenGL.error.NullFunctionError: Attempt to call an undefined function”解决方案
  6. 霍夫变换直线检测基本原理
  7. Android图像处理整理
  8. opencv reduce函数
  9. php接收一维数组中文乱码解决
  10. 在codeblocks中使用C++11标准,安装及配置方法