请在 下方输入 要搜索的题目:

求任意二叉树中第一条最长的路径长度,并输出此路径上各结点的值。

求任意二叉树中第一条最长的路径长度,并输出此路径上各结点的值。

发布时间:2024-11-26 15:12:41
推荐参考答案 ( 由 快搜搜题库 官方老师解答 )
联系客服
答案:
算法描述]
Void LongestPath(BiTree bt)//求二叉树中的第一条最长路径长度
{BiTree p=bt,l],s];
//l, s是栈,元素是二叉树结点指针,l中保留当前最长路径中的结点
Int i,top=0,tag],longest=0;
While(p || top>0)
{while(p) {s++top]=p;tagtop]=0; p=p->Lc;} //沿左分枝向下
If(tagtop]==1) //当前结点的右分枝已遍历
{if(!stop]->Lc && !stop]->Rc) //只有到叶子结点时,才查看路径长度
If(top>longest)
{for(i=1;i<=top;i++) li]=si]; longest=top; top--;}
//保留当前最长路径到l栈,记住最高栈顶指针,退栈
}
Else if(top>0) {tagtop]=1; p=stop].Rc;} //沿右子分枝向下
}//while(p!=null||top>0)
}//结束LongestPath
专业技术学习
专业技术学习
搜搜题库系统