一些题目 - wolai 笔记
1、一颗二叉树按顺序存储,求编号为ij的两个结点的最近公共祖先结点的值。
分析:任一结点i的双亲结点的编号为i/2
算法思想:
  • i>j,则结点i所在的层次大于等于结点j所在层次。结点i的双亲结点为i/2,若i/2=j,则结点j为最近公共祖先结点;若i/2!=j,则令i=i/2,采用递归的方式继续查找。
  • j>i,则结点j所在的层次大于等于结点i所在层次。结点j的双亲结点为j/2,若j/2=i,则结点i为最近公共最先结点;若j/2 != i,则令j=j/2,采用递归的方式继续查找
// 二叉树中查找i和j的最近公共结点 
ElemType commoAncestor(Tree T, int i, int j) 
{
    if(T[i] != NULL && T[j] != NULL) 
    { 
        while(i != j) 
        { 
              if(i > j) 
                    i = i /2; 
              else 
                       j = j /2 
        } 
        return T[i]; 
     }
}

Comment
avatar
Dongnian
A salty fish swimming in the sea of deep learning!
Follow Me
Announcement
Welcome to My Personal Blog!
If Not, Please Visit Gitee Mirror.