假设一棵树的存储结构采用双亲表示法,双亲指针数组为int parent[MaxSize],其中MaxSize表示双亲指针数组的最大结点个数。树中各个结点按先根遍历次序存放,根结点存于parent[0]
Posted Roam-G
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了假设一棵树的存储结构采用双亲表示法,双亲指针数组为int parent[MaxSize],其中MaxSize表示双亲指针数组的最大结点个数。树中各个结点按先根遍历次序存放,根结点存于parent[0]相关的知识,希望对你有一定的参考价值。
.
假设一棵树的存储结构采用双亲表示法,双亲指针数组为int parent[MaxSize],
其中MaxSize表示双亲指针数组的最大结点个数。
树中各个结点按先根遍历次序存放,根结点存于parent[0]。
试编写一个函数,计算p所指结点和q所指结点的最近公共祖先结点。
【解答】
这是一个二重循环。外层循环从结点 p向双亲方向循环,每变动一个结点,即对从结点 q到根的路径上各结点进行检测,遇到外层循环当前标定的结点即终止。此结点即为所求。
int CommonAncestry ( int parent[ ], int MaxSize, int p, int q )
int i, j;
for ( i = p; i != -1; i = parent[i] )
for ( j = q; j != -1; j = parent[j] )
if ( i == j ) return i;
以上是关于假设一棵树的存储结构采用双亲表示法,双亲指针数组为int parent[MaxSize],其中MaxSize表示双亲指针数组的最大结点个数。树中各个结点按先根遍历次序存放,根结点存于parent[0]的主要内容,如果未能解决你的问题,请参考以下文章