永发信息网

二叉树的深度是什么

答案:1  悬赏:10  手机版
解决时间 2021-02-26 02:23
二叉树的深度是什么
最佳答案
问题一:C语言二叉树的深度指什么?怎么求? 从根节点到叶子结点一次经过的结点形成树的一条路径,最长路径的长度为树的深度。根节点的深度为1。
解体思路:
1.如果根节点为空,则深度为0,返回0,递归的出口。
2.如果根节点不为空,那么深度至少为1,然后我们求他们左右子树的深度,
3.比较左右子树深度值,返回较大的那一个
4.通过递归调用
#include#includeusing namespace std;struct BinaryTreeNode{ int m_nValue; BinaryTreeNode* m_pLeft; BinaryTreeNode* m_pRight;};//创建二叉树结点BinaryTreeNode* CreateBinaryTreeNode(int value){ BinaryTreeNode* pNode=new BinaryTreeNode(); pNode->m_nValue=value; pNode->m_pLeft=NULL; pNode->m_pRight=NULL; return pNode;}//连接二叉树结点void ConnectTreeNodes(BinaryTreeNode* pParent,BinaryTreeNode* pLeft,BinaryTreeNode* pRight){ if(pParent!=NULL) { pParent->m_pLeft=pLeft; pParent->m_pRight=pRight; }}//求二叉树深度int TreeDepth(BinaryTreeNode* pRoot)//计算二叉树深度{ if(pRoot==NULL)//如果pRoot为NULL,则深度为0,这也是递归的返回条件 return 0; //如果pRoot不为NULL,那么深度至少为1,所以left和right=1 int left=1; int right=1; left+=TreeDepth(pRoot->m_pLeft);//求出左子树的深度 right+=TreeDepth(pRoot->m_pRight);//求出右子树深度 return left>right?left:right;//返回深度较大的那一个}void main(){// 1// / \// 2 3// /\ \// 4 5 6// /// 7 //创建树结点 BinaryTreeNode* pNode1 = CreateBinaryTreeNode(1); BinaryTreeNode* pNode2 = CreateBinaryTreeNode(2); BinaryTreeNode* pNod......余下全文>>问题二:二叉树的深度怎么算 先遍历二叉树的左子树的深度,然后再遍历二叉树右子树的深度。最后判断左子树和右子树的深度,如果左子树比右子树深则返回左子树深度+1,否则返回右子树深度+1。
算法如下:
int BiTreeDepth(BiTree T){ int i,j; if(!T) return 0; if(T->lchild) i=BiTreeDepth(T->lchild); // 左子树深度 else i=0; if(T->rchild) j=BiTreeDepth(T->rchild); // 右子树深度 else j=0; return i>j?i+1:j+1;}问题三:二叉树的深度怎么算 深度为m的满二叉树有2^m-1个结点;
具有n个结点的完全二叉树的深度为[log2n]+1.(log2n是以2为底n的对数

希望对你有帮助!问题四:二叉树的性质有些啊?怎么求它的深度? 二叉树性质
性质1 :在二叉树的第i层上至少有2^(i-1)个结点
性质2:深度为k的二叉树至多有2^(k-1)个结点
性质3:对任何一棵二叉树T,如果其终端结罚数为n0,度为2的结点数为n2,则n0=n2+1
性质4:具有n个结点的完全二叉树的深度是【log2n】+1(向下取整)
性质5:如果对一棵有n个结点的完全二叉树的结点按层序编号,则对任一结点i(1?i?n),有:
如果i=1,则结点i是二叉树的根,无双亲;如果i>1,则其双亲是?i/2?
如果2i>n,则结点i无左孩子;如果2i?n,则其左孩子是2i
如果2i+1>n,则结点i无右孩子;如果2i+1?n,则其右孩子是2i+1
还希望采纳问题五:求教,树的二叉树的高度与深度一样吗? 引自考研大纲解析38页:树的深度是从根节点开始(其深度为1)自顶向下逐层累加的,而高度是从叶节点开始(其高度为1)自底向上逐层累加的。虽然树的深度和高度一样,但是具体到树的某个节点,其深度和高度是不一样的。我的理解是:非根非叶结点的深度是从根节点数到它的,高度是从叶节点数到它的。问题六:vb中 二叉树的度 结点 深度之间有什么关系 详见:zhidao.baidu.com/...me_tag问题七:二叉树根节点的深度是0还是1? 根结点如果不为空,深度为1,如果跟结点为空,则深度是0.
//求二叉树深度
int TreeDepth(BinaryTreeNode* pRoot)//计算二叉树深度
{
if(pRoot==NULL)//如果pRoot为NULL,则深度为0,这也是递归的返回条件
return 0;
//如果pRoot不为NULL,那么深度至少为1,所以left和right=1
int left=1;
int right=1;
left+=TreeDepth(pRoot->m_pLeft);//求出左子树的深度
right+=TreeDepth(pRoot->m_pRight);//求出右子树深度
return left>right?left:right;//返回深度较大的那一个
}
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
苹果笔记本装了双系统,win系统有声音,换苹
车爵士汽车用品批发在哪里啊,我有事要去这个
婆家为什么在新娘进门前当场杀鸡丢在新娘后面
哥们过生日送什么?
樟木箱店地址在哪,我要去那里办事
京东上买了东西,已经申请退款,可以取消申请
向阳水果超市地址在哪,我要去那里办事
诸暨欧莱美矫正牙齿怎么样
酸奶紫米露地址在什么地方,想过去办事
有了解武直X这款利器的吗?知道的说下!谢谢
石家庄棉五到石家庄北站公交车
五彩鹿儿童行为矫正中心怎么去啊,有知道地址
沙艺时尚造型这个地址在什么地方,我要处理点
右图中,圆的面积是78.5cm²,正方形的周长
福春茶行我想知道这个在什么地方
推荐资讯
形容感情受伤的成语
冰心诗向日葵与白莲中的白莲象征着什么人?
金母爱母婴生活馆在什么地方啊,我要过去处理
恩斯克投资公司西安分公司我想知道这个在什么
【社会发展的动力】社会发展的根本动力是什么
第三方支付牌照申请费用和大概周期是多少?
加盟化妆品店怎样与加盟公司投机取巧?
剪不简单美发连锁怎么去啊,有知道地址的么
7989这个地址在什么地方,我要处理点事
自建房后墙一楼和二楼不在同一垂直线怎办
中国电信诚信天翼手机卖场地址有知道的么?有
我们县城搞城市规划,我们这边都要拆迁,现在
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?