关闭

26885: 树的公共祖先

143人阅读 评论(0) 收藏 举报
分类:
题目描述
给定一棵二叉树和两个不同的节点,求出他们最近的公共祖先父节点。已知该二叉树有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.
0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:16173次
    • 积分:118
    • 等级:
    • 排名:千里之外
    • 原创:91篇
    • 转载:0篇
    • 译文:0篇
    • 评论:0条
    文章分类
    文章存档