编写求任意二叉树中一条最长的路径的算法,要求输出此路径上各结点的值及路径的长度。

论坛 期权论坛 期权     
271272975   2018-4-29 11:24   3595   1
如题。
简单算法,不需要完整程序
分享到 :
0 人收藏

1 个回复

倒序浏览
2#
秋天来了仔陈  1级新秀 | 2018-4-30 01:03:54
你要伪码我就帮你弄伪码
不过要用到两个函数
int Depth(BiTree T)/* 深度 */
{
   if(T==NULL)
   return(0);
   return 1+(Depth(T->lchild)>Depth(T->rchild)? Depth(T->lchild):Depth(T->rchild));
   //选择左右孩子深度高的然后加上根节点这一层就是深度了
}
void Long(BiTree T)
{
if(T!=NULL)//在T不为空的情况下
{
visit(T->data);//访问节点
      if(Depth(T->lchild)>Depth(T->rchild))//判断往左走还是往右走
      Long(T->lchild);
      else
      Long(T->rchild);
}
}
深度就是长度,下面的函数要调用上面的函数
如果要源程序可以联系或是有不懂的可以改的简单些
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:
帖子:
精华:
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP