假设二叉树采用二叉链存储结构,设计一个算法Level o 求二叉树中制定结点的层数。

写出类型定义,算法加注释。... 写出类型定义,算法加注释。 展开
 我来答
寒寒家
2009-12-17 · TA获得超过2921个赞
知道大有可为答主
回答量:1482
采纳率:100%
帮助的人:1990万
展开全部
法1:
template<class T>
int tree<T>::tree_level(tree_node<T> *root)//利用递归:
{
if(root==NULL)
return 0;
else
{
int l_level=tree_level(root->rchild);//记录左子树的层数
int r_level=tree_level(root->rchild);//记录右子树的层数
return l_level>r_level?l_level+1:r_level+1;//选择左右层数较大的一个+1返回
}
}

法2:
template<class T>
void tree<T>::tree_level(tree_node<T> *root,int level,int& deth)//
{//用level记录当前的层数
if(root!=NULL)
{
if(level>deth)
{
deth=level;//deth和当前层数level比较,取较大值
}
tree_level(root->lchild,level+1,deth);//level+1看其左子树
tree_level(root->rchild,level+1,deth);//level+1看其右子树
}
}
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
光点科技
2023-08-15 广告
通常情况下,我们会按照结构模型把系统产生的数据分为三种类型:结构化数据、半结构化数据和非结构化数据。结构化数据,即行数据,是存储在数据库里,可以用二维表结构来逻辑表达实现的数据。最常见的就是数字数据和文本数据,它们可以某种标准格式存在于文件... 点击进入详情页
本回答由光点科技提供
learn__arm
2009-12-17 · 超过11用户采纳过TA的回答
知道答主
回答量:24
采纳率:0%
帮助的人:0
展开全部
// bzl.cpp : 定义控制台应用程序的入口点。
//

#include "stdafx.h"
#include "math.h"
typedef struct Bnode{
char data;
struct Bnode *lchild,*rchild;
}Bnode;
int i=0;
char *s="abc de g f ";
void preorder(Bnode *);
void visite(Bnode *);
void createTree(Bnode * &p){

if(s[i]!=' '){
p=new Bnode;
p->data=s[i];
i++;
createTree(p->lchild);
createTree(p->rchild);
}
else
{
p=NULL;i++;
}

}

int high(Bnode *T){
int r_lever,l_lever;
if(T==NULL)
return 0;
else{
r_lever=high(T->lchild)+1;
l_lever=high(T->rchild)+1;
if(a>b)
return r_lever;
else return l_lever;
}

}

int _tmain(int argc, _TCHAR* argv[])
{
int lever;
Bnode *p;
createTree(p);
lever=high(p);
printf("二叉树的深度为:%d",lever);

printf("\n");

return 0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式