问答题 已知A[1..N]是一棵顺序存储的完全二叉树,如何求出A[i]和A[j]的最近的共同祖先?【中国人民大学2001二、5(4分)】
【正确答案】正确答案:根据顺序存储的完全二又树的性质,编号为i(本题中i从1开始)的非根结点的双亲的编号是[i/2],故A[i]和A[j]的最近公共祖先可如下求出: while(i/2!=j/2) if(i>j) i=i/2 ; else j=j/2 ; 退出while后,若i/2=0,则最近公共祖先为根结点,否则最近公共祖先是i/2。
【答案解析】