这样求二叉树的深度是否合理?

csdn5211 2006-12-21 09:17:30
用先序非递归遍历,设置一个变量,每次进栈时加一,出栈时减一,如果当前访问节点是叶子节点,就把这个变量记录下来。最后求所有记录下来的最大值。
...全文
404 2 打赏 收藏 举报
写回复
用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
  • 打赏
  • 举报
回复
是合理的
我以前用这种方法编过这个程序
内容概要:本文研究了面向复杂海洋环境的无人水面艇(USV)编队控制问题,提出了一种双层模型预测控制(MPC)理论与鲁棒协同控制方法。上层负责编队构型的优化与全局路径规划,通过求解优化问题实现多艇协同构型的动态调整;下层基于非线性MPC框架实现各无人艇的运动控制与精确轨迹跟踪,充分考虑了系统动力学约束、外部环境干扰(如风浪流)及模型不确定性。通过引入鲁棒控制策略,增强了系统在复杂动态海洋环境下的抗干扰能力与控制稳定性。研究在Matlab平台上完成了算法的完整代码实现与仿真验证,结果表明所提方法能够有效实现多艇在复杂环境下的高精度、强鲁棒性协同编队控制。; 适合人群:具备自动控制、机器人、海洋工程或相关专业背景,熟悉Matlab/Simulink仿真工具,从事多智能体协同控制、无人系统自主导航或模型预测控制算法研究的研发人员与研究生。; 使用场景及目标:①为无人水面艇在复杂、动态、不确定的海洋环境下执行编队任务提供先进的控制理论与技术方案;②通过完整的Matlab代码实现,方便研究人员复现、验证、改进双层MPC与鲁棒协同控制算法;③促进模型预测控制与鲁棒控制理论在多智能体系统、无人装备协同作业等领域的深度融合与应用发展。; 阅读建议:建议读者结合提供的Matlab代码,深入剖析双层控制架构的设计逻辑、MPC优化问题的构建过程以及鲁棒性处理机制的具体实现,重点关注算法如何处理模型误差、外部干扰和系统硬约束,以全面掌握其在复杂场景下的工程应用潜力。

33,026

社区成员

发帖
与我相关
我的任务
社区描述
数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧