怎么求二叉树的结点的层次啊

学习 时间:2026-04-07 18:18:16 阅读:9450
怎么求二叉树的结点的层次啊含三个参数的,在以p结点(层次为i)为根的子树中,求x结点所在的层次

最佳回答

超级的抽屉

会撒娇的电灯胆

2026-04-07 18:18:16

利用递归函数,遍历二叉树节点,分别求两个子树的层次i1,i2,取大的那个层次+1即为本层的层次,依次逐层递归调用该函数,直至所有节点均求得解,最后回归根节点p,得出该节点层次。 再问: 应该是这个节点的父母结点的层次加1吧!这个递归怎么写啊 再答: 子树的层次+1就是本身的层次,这个没有错的。因为递归本身只能从子树开始求层次的。最末端子树的层次为1。 '假设p为根节点 sub function 层次(p) as long '二叉树的两个子树节点p1,p2 '判断p是否为末节点(最末端节点),不是则执行下边语句,是则返回此节点层次为1 if 末节点(p) then 层次 = 1 else a=层次(p1) b=层次(p2) if a >b then 层次= a else 层次= b end if end if end sub 我这里没有具体给出二叉树的数据结构和判断子树为末节点的方法,主要是因为让你可以根据自己的结构进行编码。

最新回答共有2条回答

  • 诚心的茉莉
    回复
    2026-04-07 18:18:16

    利用递归函数,遍历二叉树节点,分别求两个子树的层次i1,i2,取大的那个层次+1即为本层的层次,依次逐层递归调用该函数,直至所有节点均求得解,最后回归根节点p,得出该节点层次。 再问: 应该是这个节点的父母结点的层次加1吧!这个递归怎么写啊 再答: 子树的层次+1就是本身的层次,这个没有错的。因为递归本身只能从子树开始求层次的。最末端子树的层次为1。 '假设p为根节点 sub function 层次(p) as long '二叉树的两个子树节点p1,p2 '判断p是否为末节点(最末端节点),不是则执行下边语句,是则返回此节点层次为1 if 末节点(p) then 层次 = 1 else a=层次(p1) b=层次(p2) if a >b then 层次= a else 层次= b end if end if end sub 我这里没有具体给出二叉树的数据结构和判断子树为末节点的方法,主要是因为让你可以根据自己的结构进行编码。

上一篇 不会动的动物有哪些?

下一篇 有关韦应物写的描写春天的诗吗?急