如何写算法求二叉树中某个结点的深度(大概思路)
来源:学生作业帮 编辑:神马作文网作业帮 分类:综合作业 时间:2024/11/18 07:02:27
如何写算法求二叉树中某个结点的深度(大概思路)
1,可以用递归方法,
2,先根遍历
3,递归函数,增加形参,记录当前的根的层.
4,找到和结点对应的记录值 .
5,返回结点层数
伪代码如下:
// T结点,L当前层,value,结点值
//返回-1:没有找到,0-n:对应层
int get_node_layer(T *node,int value ,int L)
{int i=-1;
if(node)
{
if(node->value ==value)
return L;
if(i = get_node_layer(node->left,value ,L+1)!=-1) //查左子树,如找到就返回
return i; /
if(i = get_node_layer(node->right,value ,L+1)!=-1)//查右子树,如找到就返回
return i;
}
return i;
}
2,先根遍历
3,递归函数,增加形参,记录当前的根的层.
4,找到和结点对应的记录值 .
5,返回结点层数
伪代码如下:
// T结点,L当前层,value,结点值
//返回-1:没有找到,0-n:对应层
int get_node_layer(T *node,int value ,int L)
{int i=-1;
if(node)
{
if(node->value ==value)
return L;
if(i = get_node_layer(node->left,value ,L+1)!=-1) //查左子树,如找到就返回
return i; /
if(i = get_node_layer(node->right,value ,L+1)!=-1)//查右子树,如找到就返回
return i;
}
return i;
}
求二叉树的结点个数算法
结点为什么在深度为7的满二叉树中,度为2的结点个数为多少 和深度为5的满二叉树有几个叶子结点的算法不同
关于二叉树结点算法的问题
.设一棵二叉树的深度为k,则该二叉树中最多有( )个结点.
试编写计算二叉树深度、所有结点总数、叶子结点数、双孩子结点个数、单孩子结点个数的算法
深度为5的二叉树最多有几个结点(跟结点层数为0)
二叉树的基本性质3,某个二叉树共有7各结点,其中叶子节点只有一个,则该二叉树的深度为(假设根节点在第一层)?
某二叉树共有7个结点,其中叶子结点只有1个,则该二叉树的深度为(假设根结点在第1层)
某二叉树共有7个结点,其中叶子结点只有1个,则二叉树的深度为(假设根结点在第一层)?
二叉树中,深度为8,根的层次号为1的二叉树有多少个子结点?
在深度为5的满二叉树中,叶子结点的个数为多少?
深度为5的满二叉树中,叶子结点的个数为多少