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