26885: 树的公共祖先

题目描述
给定一棵二叉树和两个不同的节点,求出他们最近的公共祖先父节点。已知该二叉树有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.
阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/jing1223639316/article/details/46826635
个人分类: 编程
上一篇26847: 二叉树的遍历
下一篇26886: 树的路径
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭