题目:已知一课二叉树按顺序存储结构进行存储,设计一个算法,求编号分别为i和j的两个节点的最近的公共祖先节点的值
    分析:
        利用数组存储一颗二叉树,一般来说我们用这种方式存储一颗完全二叉树,不浪费空间。然后我们可以依据其下标的特性,下标的二分之一既是该节点的父节点

代码如下:

#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
int findCommonAncestor(int *arr,int i,int j) {while (i!=j) {i > j ? i = i / 2: j = j / 2;}return *(arr + i);
}
int main() {void createBiTree(int *,int);int count,i,j;printf("请输入所要创建的二叉树,其转换为完全二叉树的最少节点数:count=");scanf("%d",&count);int *arr = (int *)malloc(sizeof(int)*(count + 2));//下标为0我们不存createBiTree(arr,count);printf("请输入要查找公共节点的两个节点的编号,编号<=%d:\n",count);printf("i=");scanf("%d",&i);printf("\n");printf("j=");scanf("%d", &j);while (i>count || j>count || *(arr+i)==9999||*(arr+

顺序存储二叉树之寻找公共祖先节点相关推荐

  1. 二叉树的最近公共祖先、二叉搜索数的最近公共祖先

    目录 二叉树的最近公共祖先 二叉搜索数的最近公共祖先 二叉树的最近公共祖先Ⅱ 二叉树的最近公共祖先Ⅲ 二叉树的最近公共祖先Ⅳ 二叉树的最近公共祖先 给定一个二叉树, 找到该树中两个指定节点的最近公共祖 ...

  2. LeetCode 1676. 二叉树的最近公共祖先 IV

    文章目录 1. 题目 2. 解题 1. 题目 给定一棵二叉树的根节点 root 和 TreeNode 类对象的数组(列表) nodes,返回 nodes 中所有节点的最近公共祖先(LCA). 数组(列 ...

  3. 二叉树寻找祖先C语言,二叉树寻找最近公共祖先节点

    方法一:递归 1.思路 (1)定义fx表示x节点的子树中是否包含p或者q节点,如果包含为true,否则为false.那么符合条件的最近公共祖先节点一定满足下面的条件: (flson && ...

  4. 二叉树最近公共祖先节点

    寻找最近公共祖先节点(LCA) 在一棵二叉树中,对于节点X和节点Y,X和Y的LCA是这棵树中X和Y的第一个共同祖先.寻找公共节点的算法思路很简单:对于节点x和y,找到树的根节点分别到x节点和y节点的路 ...

  5. 【解析】案例4-1.5 顺序存储的二叉树的最近公共祖先问题

    立志用最少的代码做最高效的表达 设顺序存储的二叉树中有编号为ii和jj的两个结点,请设计算法求出它们最近的公共祖先结点的编号和值. 输入格式: 输入第1行给出正整数nn(\le 1000≤1000), ...

  6. 代码随想录算法训练营第22天 二叉树 java :235. 二叉树的最近公共祖先 701.二叉搜索树中的插入操作 450.删除二叉搜索树中的节点

    文章目录 LeetCode 236. 二叉树的最近公共祖先 题目讲解 思路 LeetCode 701.二叉搜索树中的插入操作 题目讲解 思路 LeetCode 450.删除二叉搜索树中的节点 题目讲解 ...

  7. LeetCode实战:二叉树的最近公共祖先

    背景 为什么你要加入一个技术团队? 如何加入 LSGO 软件技术团队? 我是如何组织"算法刻意练习活动"的? 为什么要求团队的学生们写技术Blog 题目英文 Given a bin ...

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

    文章目录 解法1:保存祖先节点+逐个判断 解法2:深度优先遍历 解法3:记录祖先节点 https://leetcode-cn.com/problems/lowest-common-ancestor-o ...

  9. Leetcode--236. 二叉树的最近公共祖先(Java)

    给定一个二叉树, 找到该树中两个指定节点的最近公共祖先. 百度百科中最近公共祖先的定义为:"对于有根树 T 的两个结点 p.q,最近公共祖先表示为一个结点 x,满足 x 是 p.q 的祖先且 ...

最新文章

  1. zend studio自动添加文件注释和方法注释
  2. oracle表空间和用户的创建、修改、授权、查看等执行SQL
  3. 终于有人把Java技术知识面试体系整理出来了,这些文档让你的面试稳如泰山
  4. P2568-GCD【欧拉函数,欧拉筛】
  5. linux open函数使用,linux中open函数使用
  6. 面试问题_教资面试,结构化面试问题分享
  7. 侯策:如何突破前端开发技术瓶颈
  8. 编译OpenJDK8:NMAKE : fatal error U1077
  9. Android系统 ——高通平台刷机流程(qfil)
  10. Vue 中如何引入第三方 JS 库
  11. 数据结构——单向循环链表双向循环链表
  12. OEM 11g在win7 ie11下报错“证书错误,导航已阻止”的恢复方法
  13. Dapr for dotnet | 并发计算模型 - Virtual Actors
  14. oracle 并行之二: parallel dml
  15. 通过GPRS 模块M26程序实现 实时时钟
  16. 【多式联运】基于模拟退火优化遗传算法求解多式联运运输问题(含碳政策)含Matlab代码
  17. 【全栈接口测试进阶系列教程】入门到入职的jmeter接口测试工具实战,接口测试步骤,正则表达式jsonpath,断言,接口加密,beanshell,jdbc,jmeter+ant+jenkins
  18. 单目标跟踪SiamMask:特定目标车辆追踪 part2
  19. 扩展坞可以把手机投到显示器吗_连接手机与屏幕的桥梁,ORICO多功能扩展坞体验...
  20. PPT插入幻灯片编号却没有出现页码的解决方法

热门文章

  1. LightOj 1027 A Dangerous Maze
  2. Command 模式 Step by Step
  3. HTML5须知的特征和技术
  4. linux下php安装
  5. css3毛玻璃效果白边问题
  6. SharePoint 2013 基于表单 Membership 的身份验证
  7. ASP.NET模拟其他用户进行关机
  8. Vuejs 动态绑定属性
  9. TensorFlow2.0(四)--Keras构建深度神经网络(DNN)
  10. 多线程编程之三——线程间通讯