26885: 树的公共祖先

原创 2015年07月10日 09:46:05
题目描述
给定一棵二叉树和两个不同的节点,求出他们最近的公共祖先父节点。已知该二叉树有n个节点,标号1..n。(n<100)
输入
输入:
第一行两个整数x,y,表示需要计算的节点;
以下若干行,每行两个整数a和b,表示a的父节点是b。
输出
输出:
X与y的最近公共祖先root。
样例输入
9 7
2 1
3 2
4 2
5 3
8 5
9 5
6 4
7 4

样例输出
2
program p26885;
var
 f,a:array[1..100]of longint;
 x,y:longint;
 procedure chuli;
  var a,b:longint;
  begin
   readln(x,y);
   while not eof do
    begin
     readln(a,b);
     f[a]:=b;
    end;
  end;
  procedure zhaogen;
   var i,j:longint;
   begin
    i:=x;
    while i<>0 do
     begin
      a[i]:=1;
      i:=f[i];
     end;
    j:=y;
    while a[j]<>1 do
     J:=f[j];
    writeln(j);
    end;
begin
 chuli;
 zhaogen;
end.
版权声明:本文为博主原创文章,未经博主允许不得转载。

二叉查找树(6) - 最近公共祖先LCA

给定二叉查找树中的两个节点,求它们的最近公共祖先(Lowest Common Ancestor - LCA)。 在详细介绍之前,可以先参考下这篇文章"二叉树(70) - 最近公共祖先[1]" 函数...
  • shltsh
  • shltsh
  • 2015年06月16日 00:31
  • 1807

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

5-10 顺序存储的二叉树的最近的公共祖先问题   (25分) 设顺序存储的二叉树中有编号为ii和jj的两个结点,请设计算法求出它们最近的公共祖先结点的编号和值。 输入格式: 输...

二叉树(12)----查找两个节点最低祖先节点(或最近公共父节点等),递归和非递归

1、二叉树定义: typedef struct BTreeNodeElement_t_ { void *data; } BTreeNodeElement_t; typedef struct...

求二叉树的任意两个节点的最近公共祖先

 二叉查找树   如果该二叉树是二叉查找树,那么求解LCA十分简单。 基本思想为:从树根开始,该节点的值为t,如果t大于t1和t2,说明t1和t2都位于t的左侧,所以它们的共同祖先必定在...

面试经典(5)--二叉树最低公共祖先LCA

题目:输入二叉树的俩个节点,求它们的最低公共祖先 算法分析:我们直接来分析O(n)的算法。 比如求节点F和节点H的最低公共祖先,先求出从根节点A到F的路径,再求出A到H的路径,那么最后一个相同的节...

[ACM] sdut 2882 Full Binary Tree (满二叉树的公共祖先)

Full Binary Tree Time Limit: 2000ms   Memory limit: 65536K  有疑问?点这里^_^ 题目描述 In ...

二叉树最近公共祖先问题(O(n) time 且只遍历一遍,O(1) Space (不考虑函数调用栈的空间))

Tarjan算法很精妙,但是使用了并查集,需要额外O(n)的存储空间。上面博客中给的第三个方法也是需要记录根到节点的路径,需要O(log n)空间,当然考虑到一般情况下我们遍历树都是递归的方式,所以本...

寻找二叉树两个节点的最低公共祖先

原文链接:http://www.geeksforgeeks.org/lowest-common-ancestor-binary-tree-set-1/ ACM之家链接:http://www.acme...
  • Valieli
  • Valieli
  • 2016年07月31日 21:19
  • 198

求二叉树的两个节点的最低公共祖先节点

这是一道很经典的问题,《剑指Offer》上给出的解法是先找到从根节点到这两个节点的简单路径,这两条简单路径的最后公共节点就是这两个节点的最低公共祖先节点。本文给出的解法不必找到从根节点到这两个节点的简...

树---求给定二叉树中两节点的最低公共祖先(LCA)

一、问题描述对于一颗二叉树,给定其中的两节点n1,n2,求出他们的最低公共祖先(Lowest Common Ancestor )。例如: 二、问题求解利用递归思想。(1)从root开始遍历,如果n1...
  • will130
  • will130
  • 2015年10月31日 21:37
  • 319
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:26885: 树的公共祖先
举报原因:
原因补充:

(最多只允许输入30个字)