社区
C语言
帖子详情
用递归写个求二叉树的深度的函数
sms88
2003-04-17 07:27:21
用递归写个求二叉树的深度的函数,而且写出其执行的每一步过程
...全文
282
11
打赏
收藏
用递归写个求二叉树的深度的函数
用递归写个求二叉树的深度的函数,而且写出其执行的每一步过程
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
11 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
suguanqun
2003-04-21
打赏
举报
回复
up
Spectrum
2003-04-21
打赏
举报
回复
up
lfengchao
2003-04-21
打赏
举报
回复
#include "stdio.h"
#include "alloc.h"
typedef char Elemtype;
typedef struct Bitnode
{Elemtype data;
struct Bitnode *lchild,*rchild;
}Bitnode,*Bittree;
Bittree creatbittree()
{ Bittree bt;
char ch;
scanf("%c",&ch);
if (ch==' ') bt=NULL;
else{
bt=(Bittree)malloc(sizeof(Bitnode));
bt->data=ch;
bt->lchild=creatbittree();
bt->rchild=creatbittree();
}
return bt;
}
int Bhigh(Bittree bt)
{
int H,HL,HR;
if(bt==NULL) H=0;
else
{
HL=Bhigh(bt->lchild);
HR=Bhigh(bt->rchild);
H=max(HL,HR)+1;
}
return H;
}
int max(int x,int y)
{
if(x>y)
return x;
else
return y;
}
main()
{
Bittree Tree;
int H;
Tree=creatbittree();
H=Bhigh(Tree);
printf("\nThe high of the tree is:%d\n",H);
}
MelodyCanFLY
2003-04-21
打赏
举报
回复
关注
sms88
2003-04-21
打赏
举报
回复
不是我偷懒呀,而是拿一个二叉数代入那个递归函数,我就不知道怎么计算到结果
huangstar1108
2003-04-21
打赏
举报
回复
很多书上都有,不要偷懒呀!
bjack
2003-04-18
打赏
举报
回复
template<class T>
int BinaryTree<T>::Height(BinaryTreeNode<T>*t) const
{
if(!t) return 0;
int hl = Height(t->LeftChild);
int hr = Height(t->RightChild);
if (hl > hr) return ++hl;
else return ++hr;
}
shishiXP
2003-04-17
打赏
举报
回复
struct BTNode
{
BTNode *lchild;
BTNode *rchild;
BTNode()
{
lchild=0;
rchild=0;
}
};
int getdepth( BTNode* BT )
{
int ldepth = 0;
int rdepth = 0;
if( BT == NULL )return 0;
ldepth=getdepth( BT->lchild );
rdepth=getdepth( BT->rchild );
return 1 + ( ldepth > rdepth ? ldepth : rdepth );
}
加分!!!!!!!!!!!!!!!!!
alexGIS
2003-04-17
打赏
举报
回复
不太明白你的要求。
什么叫写出其执行的每一步?
像计算机一样去读读源代码不就明白了程序到底怎么走的吗?
sms88
2003-04-17
打赏
举报
回复
可以用一个随便的二叉树写出其执行的每一步吗?
alexGIS
2003-04-17
打赏
举报
回复
int GetDepth( BTNode* BT )
{
int depth = 0;
int temp1 = 0;
int temp2 = 0;
if( BT == NULL )
{
return 0;
}
else
{
temp1 = GetDepth( BT->lChild );
temp2 = GetDepth( BT->rChild );
depth = temp1 > temp2 ? temp1 : temp2;
depth++;
return depth;
}
}
JAVA近百种算法大全
3. 栈:后进先出(LIFO)的数据结构,常用于
函数
调用和表达式求值。 4. 队列:先进先出(FIFO)的数据结构,适用于任务调度和消息传递。 5. 树:非线性的数据结构,如
二叉树
、平衡树(AVL、红黑树)等,常用于搜索和...
结构之法算法之道blog最新博文集锦第6期CHM文件
例如,栈的后进先出(LIFO)原理在
函数
调用和表达式求值中至关重要;
二叉树
和图则广泛应用于搜索和排序问题。 2. **算法分析**:包括时间复杂度和空间复杂度的分析,是评估算法效率的重要手段。通过对算法运行过程...
递归
法求
二叉树
的
深度
想要计算一个
二叉树
的
深度
,我们先可以拆成求根结点的左右子树的
深度
;而根结点的左右子树的
深度
又可拆成求根左结点的左右子树
深度
和根右结点的左右子树的
深度
。这样一层一层给套下去,很容易想到
递归
。 明确每...
递归
求
二叉树
的
深度
_
递归
解题三部曲
我自己刚开始解决
递归
问题的时候,总是会去纠结这一层
函数
做了什么,它调用了自身后的下一层
函数
又做了什么......然后就会觉得实现一个
递归
解法十分复杂,根本就无从下手。相信很多初学者和我一样,这是一个思维误区...
用
递归
算法求
二叉树
的
深度
(C语言版)
printf("
二叉树
的
深度
为:%d\n", depth);printf("内存分配失败\n");// 计算
二叉树
的
深度
。//
二叉树
结点的定义。// 计算
二叉树
的
深度
。
C语言
70,024
社区成员
243,263
社区内容
发帖
与我相关
我的任务
C语言
C语言相关问题讨论
复制链接
扫一扫
分享
社区描述
C语言相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章