社区
数据结构与算法
帖子详情
这样求二叉树的深度是否合理?
csdn5211
2006-12-21 09:17:30
用先序非递归遍历,设置一个变量,每次进栈时加一,出栈时减一,如果当前访问节点是叶子节点,就把这个变量记录下来。最后求所有记录下来的最大值。
...全文
310
2
打赏
收藏
这样求二叉树的深度是否合理?
用先序非递归遍历,设置一个变量,每次进栈时加一,出栈时减一,如果当前访问节点是叶子节点,就把这个变量记录下来。最后求所有记录下来的最大值。
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
2 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
cjq87
2006-12-21
打赏
举报
回复
//栈的函数写的不是很好
//退栈的时候隐含了depth--
#include <stdio.h>
#include <malloc.h>
#define M 10 /* 假设二叉树最多的层数 */
typedef struct BiTNode
{
char data;
struct BiTNode *lchild,*rchild;
}BiTNode,*BiTree;
typedef struct Stack
{
char data;
BiTree * top;
BiTree * base;
}Stack;
void InitStack(Stack &S)
{
S.base=(BiTree *)malloc(sizeof(BiTree)*M);
S.top=S.base;
}
void push(Stack &S,BiTree p)
{
*S.top=p;
S.top++;
}
void pop(Stack &S,BiTree &p)
{
S.top--;
p=*S.top;
}
int StackEmpty(Stack S)
{
if(S.base==S.top)
return 1;
else
return 0;
}
void CreateBiTree(BiTree &T) /* 按先序序列建立一个二叉树 */
{
char c;
scanf("%c",&c);
if (c=='#')
T=NULL;
else
{
if (T)
{
T = (BiTNode *)malloc(sizeof(BiTNode));
T->data = c; /* 生成根结点 */
CreateBiTree(T->lchild); /* 构造左子树 */
CreateBiTree(T->rchild); /* 构造右子树 */
}
}
}
int DepthTree(BiTree &T)
{
BiTree p;
int depth, max;
Stack S;
InitStack(S);
p=T;
depth=max=0;
while(p||!StackEmpty(S))
{
if(p)
{
push(S,p);
p=p->lchild;
depth++;
if(max<depth)
max=depth;
}
else
{
pop(S,p);
p=p->rchild;
}
}
return max;
}
void main()
{
BiTree T;
printf("Please input(end with \"#\"):\n");
CreateBiTree(T);
printf("The depth of the tree is:");
printf("%d\n",DepthTree(T));
}
cjq87
2006-12-21
打赏
举报
回复
是合理的
我以前用这种方法编过这个程序
数据结构C语言版_
二叉树
的顺序存储表示和实现
- **
求
二叉树
深度
**:`BiTreeDepth`函数通过遍历数组找到最后一个非空节点,然后根据该节点的位置计算出
二叉树
的
深度
。 - **获取根节点**:`Root`函数返回
二叉树
的根节点值。 - **获取节点值**:`Value`函数根据位置...
第六章 树和
二叉树
作业及答案(100分).docx
- **题目描述**:询问完全
二叉树
是否
一定是平衡
二叉树
、二叉排序树、堆或哈夫曼树。 - **答案解析**:完全
二叉树
不一定是平衡
二叉树
(选项A)。完全
二叉树
是指除最后一层外,其余各层都是完全充满的,且最后一层的...
《数据结构》
二叉树
的顺序存储
二叉树
的顺序存储结构是...总之,
二叉树
的顺序存储结构在空间效率和访问速度方面表现优秀,尤其适用于节点数确定且接近完全
二叉树
的场景,但在实际应用中需要权衡空间利用和结构灵活性之间的利弊,
合理
选择存储方式。
软件工程课程设计
二叉树
的遍历
- 设计
合理
的数据结构存储
二叉树
的节点信息。 - 提供足够的测试案例验证程序的正确性和稳定性。 #### 三、功能分析 根据题目要
求
,程序需要具备以下功能: 1. **创建
二叉树
**:按照层次顺序输入节点信息,构建...
二叉排序树与平衡
二叉树
的实现
(5)计算调整后的平衡
二叉树
中各结点的平衡因子,检验
是否
因为旋转而破坏其他结点的平衡因子,以及调整后的平衡
二叉树
中
是否
存在平衡因子大于1的结点。 2 方案设计 2.1 模块功能 1.建立
二叉树
:要
求
以回车('\n')...
数据结构与算法
33,027
社区成员
35,335
社区内容
发帖
与我相关
我的任务
数据结构与算法
数据结构与算法相关内容讨论专区
复制链接
扫一扫
分享
社区描述
数据结构与算法相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章