导航:首页 > 源码编译 > 建立二叉树的递归算法

建立二叉树的递归算法

发布时间:2024-03-13 22:46:00

‘壹’ Java数据结构二叉树深度递归调用算法求内部算法过程详解

二叉树
1
2 3
4 5 6 7
这个二叉树的深度是3,树的深度是最大结点所在的层,这里是3.

应该计算所有结点层数,选择最大的那个。

根据上面的二叉树代码,递归过程是:

f(1)=f(2)+1 > f(3) +1 ? f(2) + 1 : f(3) +1

f(2) 跟f(3)计算类似上面,要计算左右结点,然后取大者

所以计算顺序是f(4.left) = 0, f(4.right) = 0

f(4) = f(4.right) + 1 = 1

然后计算f(5.left) = 0,f(5.right) = 0

f(5) = f(5.right) + 1 =1

f(2) = f(5) + 1 =2

f(1.left) 计算完毕,计算f(1.right) f(3) 跟计算f(2)的过程一样。

得到f(3) = f(7) +1 = 2

f(1) = f(3) + 1 =3

if(depleft>depright){
returndepleft+1;
}else{
returndepright+1;
}

只有left大于right的时候采取left +1,相等是取right

‘贰’ 建立二叉树的递归算法怎样理解

不断地在纸上或脑子里执行每一步,在一点要深刻理解函数的调用和形参和实参的概念,还有return语句。熟能生巧一位牛人说的.

‘叁’ 怎样理解递归建立二叉树算法

因为二叉树的定义本来就是递归的,也就是说二叉树的子树也是一个二叉树

‘肆’ C语言二叉树递归算法怎么做

#include<stdio.h>
#include<string.h>

structtreenode{
intvalue;
treenode*left;
treenode*right;
};
typedeftreenode*BiTree;

voidvisit(treenode*node)
{
printf("%2d",node->value);
}

//结点总数
intnode(BiTreeT)
{
if(!T){
return0;
}
returnnode(T->left)+node(T->right)+1;
}

//前序
voidpreOrder(BiTreeT)
{
if(T){
visit(T);
preOrder(T->left);
preOrder(T->right);
}
}

//中序
voidinOrder(BiTreeT)
{
if(T){
inOrder(T->left);
visit(T);
inOrder(T->right);
}
}

//后序
voidpostOrder(BiTreeT)
{
if(T){
postOrder(T->left);
postOrder(T->right);
visit(T);
}
}

//叶子节点数
intleafnode(BiTreeT)
{
if(T){
if(!T->left&&!T->right)
return1;
else
leafnode(T->left)+leafnode(T->right);
}else{
return0;
}
}

intheight(BiTreeT)
{
if(T){
intlh=height(T->left);
intrh=height(T->right);
return(lh>rh?lh:rh)+1;
}else{
return0;
}
}

intmain()
{


return0;
}

阅读全文

与建立二叉树的递归算法相关的资料

热点内容
php读取二维数组 浏览:348
php编译安装参数 浏览:278
其实压力没那么大程序员图片 浏览:416
如何查看app内访问的网页地址 浏览:757
安卓手机信号旁边的汉字怎么设置 浏览:304
nrf2401单片机 浏览:713
清除电脑文件夹垃圾的方法 浏览:226
天河程序员 浏览:192
成都程序员公积金 浏览:768
程序员为什么叫程序猿 浏览:484
加西贝拉压缩机价格 浏览:788
海信聚好看如何用u盘安装app 浏览:71
加密狗怎么写的 浏览:560
安卓手机如何能调最大声音 浏览:668
编程开发工具大全 浏览:572
如何把安卓系统换成windows 浏览:31
android拼接url 浏览:25
华为nfc复制加密卡怎么模拟 浏览:775
在pdf中怎么插入文件 浏览:115
单片机中fw缩写是什么 浏览:378