已知一棵二叉树按顺序存储结构进行存储,设计一个算法,求编号分别为 i 和 j 的两个结点的最近的公共祖先结点的值。
区块链毕设网qklbishe.com为您提供问题的解答
已知一棵二叉树按顺序存储结构进行存储,设计一个算法,求编号分别为 i 和 j 的两个结点的最近的公共祖先结点的值。
#include <stdio.h> #include <malloc.h> #define MaxSize 13 typedef struct TNode { char data; TNode* lchild; TNode* rchild; }TNode; int find_public(TNode T[],int i,int j)//注意这里不是TNode* &T { if(T[i].data!='#'&&T[j].data!='#')//还要判断结点是否存在 { while(i!=j) { if(i>j) i=i/2; else j=j/2; } return i; } else return 0; } int main() { TNode T[MaxSize]; for(int i=1;i<MaxSize;i++)//从数组下标1开始存储 { char c; scanf("%c",&c); T[i].data=c; } int k=find_public(T,4,10); printf("%c",T[k].data);//测试数据:ABCDE####F#,输出data:B return 0; }
00:19
以上就是关于问题已知一棵二叉树按顺序存储结构进行存储,设计一个算法,求编号分别为 i 和 j 的两个结点的最近的公共祖先结点的值。的答案
欢迎关注区块链毕设网-
专业区块链毕业设计成品源码,定制。
区块链NFT链游项目方科学家脚本开发培训