blsn.net
当前位置:首页 >> C语言二叉树的深度指什么?怎么求? >>

C语言二叉树的深度指什么?怎么求?

从根节点到叶子结点一次经过的结点形成树的一条路径,最长路径的长度为树的深度。根节点的深度为1。 解体思路: 1.如果根节点为空,则深度为0,返回0,递归的出口。 2.如果根节点不为空,那么深度至少为1,然后我们求他们左右子树的深度, 3.比...

是二叉树的基本性质··深度为m的二叉树最多有2的m次幂减1的结点比如深度为5的满二叉树那就是31个结点

叶子节点就是度为0的结点,比度为2的结点多一个,即度2的没有,这样度为1的结点就是11个,故深度为12(1度就是结点连着1个子树,二叉树最多俩子树,即左右子树)

treedeep是有返回值的呀,返回的值,给ld或者rd赋值

测试结果: At the first,we create a tree Please input nodes of tree a b c # # d e # g # # f # # # abcdegf cbegdfa cgefdba The count of leaves is: 3 The height of tree is 5 请按任意键继续. . . 【楼主】 建树的函数是一个递归的过程...

#include #include struct BiTreeNode { char data; struct BiTreeNode *rchild; struct BiTreeNode *lchild; }; void Create(struct BiTreeNode *&Tnode) //先序创建2叉链表 { char ch; scanf("%c",&ch); if(ch=='#') { Tnode=NULL; } else { T...

//=====采用后序遍历求二叉树的深度、结点数及叶子数的递归算法======== int TreeDepth(BinTree T) { int hl,hr,max; if(T){ hl=TreeDepth(T->lchild); //求左深度 hr=TreeDepth(T->rchild); //求右深度 max=hl>hr? hl:hr; //取左右深度的最大值...

#include #include typedef char DataType; typedef struct Node { DataType data; struct Node * leftChild; struct Node * rightChild; }BiTreeNode; void Initiate(BiTreeNode * *root) { *root=(BiTreeNode*)malloc(sizeof(BiTreeNode)); (*...

int BiTreeDepthHierarchy(BiThrTree T) //非递归类层次遍历求二叉树深度 { int depth=0,hp,tp,lc; //hp为已访问的结点数,tp历史入队的结点总数,lc为每层最后一个结点标记 LinkQueue Q; BiThrNode *p; if(T) { p=T; hp=0;tp=1;lc=1; InitQueue...

因为叶子节点为1个,所以是一个一个接着向下的所以深度为7

网站首页 | 网站地图
All rights reserved Powered by www.blsn.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com