#include"allinclude.h"intcommonAncestor(SqBiTree T,int i,int j){// Add your code hereif(i <=0|| j <=0|| i > T.lastIndex || j > T.lastIndex)return0;while(i !=1&& j !=1){if(i >= j){while(i >=2*j){
i /=2;}
i /=2;
j /=2;if(j == i)return i;}else{while(j >=2*i){
j /=2;}
i /=2;
j /=2;if(j == i)return i;}if(i ==1|| j ==1){return1;}}return0;}
#include"allinclude.h"
Status is_Desendant(SqBiTree T,int u,int v){// Add your code hereif(u > T.lastIndex || v > T.lastIndex || u <=0|| v <=0|| u > v)return FALSE;while(v > u){
v /=2;if(u == v)return TRUE;}return FALSE;}
#include"allinclude.h"
Status Similar(BiTree T1, BiTree T2){// Add your code hereif(T1 ==NULL&& T2 ==NULL)return TRUE;if(T1 !=NULL&& T2 !=NULL){returnSimilar(T1->lchild,T2->lchild)&&Similar(T1->rchild,T2->rchild);}return FALSE;}
#include"allinclude.h"
TElemType PreOrderK1(BiTree T,int&k);
TElemType PreOrderK(BiTree T,int k){// Add your code herereturnPreOrderK1(T,k);}
TElemType PreOrderK1(BiTree T,int&k){
TElemType p ='#';if(k <1|| T ==NULL)return'#';if(k ==1)return T->data;
k--;if(T->lchild){
p =PreOrderK1(T->lchild,k);}if(T->rchild && p =='#'){
p =PreOrderK1(T->rchild,k);}return p;}
#include"allinclude.h"voidPreOrder(BiTree T,Status(*visit)(TElemType)){// Add your code here
Stack s;InitStack(s);while(T !=NULL||!StackEmpty(s)){if(T){visit(T->data);Push(s,T);
T = T->lchild;}else{Pop(s,T);
T = T->rchild;}}}