标签:结点 parent int MaxSize 双亲 指针
.
假设一棵树的存储结构采用双亲表示法,双亲指针数组为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;
}
标签:结点,parent,int,MaxSize,双亲,指针 来源: https://blog.csdn.net/weixin_41290863/article/details/121707910
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。