什么是树的阶数求树的阶数的定义(一个链表节点定义最多有的子

10991人阅读
c/c++(131)
//节点的数据结构
class BTree
BTree(int value)
m_nValue =
一:求二叉树的节点个数:
求二叉数中的节点个数
递归解法:
1:如果二叉树为空,节点的个数为0
2:如果二叉树不为空,二叉树节点的个数 = 左子树节点个数+右子树节点的个数+1;
int GetNodeCount(BTree* pRoot)
if (pRoot == NULL)
int LeftNum
GetNodeCount(pRoot-&m_nLeft);
int RightNum =
GetNodeCount(pRoot-&m_nRight);
int ret = LeftNum+RightNum+1;
二:求二叉树的深度:
求二叉树的深度
递归解法:
1:如果二叉树为空,则二叉树的深度为0
2:如果二叉树不为空,二叉树的深度 = MAX(左子数深度,右子树深度)+1;
int GetTreeDepth(BTree* pRoot)
if (pRoot == NULL)
int LeftDepth
= GetTreeDepth(pRoot-&m_nLeft);
int RightDepth = GetTreeDepth(pRoot-&m_nRight);
int ret = max(LeftDepth,RightDepth)+1;
三:四种遍历方式:
前序遍历:
1:如果二叉树为空,空操作
2:如果二叉树不为空,访问根节点,前序遍历左子树,前序遍历右子树
void PreOrderTraverse(BTree* pRoot)
if (pRoot == NULL)
cout&&pRoot-&m_nValue&&
PreOrderTraverse(pRoot-&m_nLeft);
PreOrderTraverse(pRoot-&m_nRight);
中序遍历:
1:如果二叉树为空,空操作
2:如果二叉树不为空,第一步中序遍历左字树,第二步访问跟节点,第三步中序遍历右子树
void InOrderTraverse(BTree* pRoot)
if (pRoot == NULL)
InOrderTraverse(pRoot-&m_nLeft);
cout&&pRoot-&m_nValue&&
InOrderTraverse(pRoot-&m_nRight);
后序遍历:
1:如果二叉树为空,空操作
2:如果二叉树不为空,第一步后序遍历左子树,第二步后序遍历右子树,第三步访问跟节点;
void BackOrderTraverse(BTree* pRoot)
if (pRoot == NULL)
BackOrderTraverse(pRoot-&m_nLeft);
BackOrderTraverse(pRoot-&m_nRight);
cout&&pRoot-&m_nValue&&
分层遍历二叉树(按层次从上到下,从左往右)
相当于广度优先搜素,使用队列实现。
队列初始化,将跟节点压入队列。
当队列不为空:弹出一个节点,访问,若左子树节点或者右子树节点不为空,将其压入队列!
void LevelTraverse(BTree* pRoot)
if (pRoot == NULL)
queue&BTree*&
q.push(pRoot);
while (!q.empty())
BTree* pNode = q.front();
cout&&pNode-&m_nValue&&//访问节点
if(pNode-&m_nLeft != NULL)
q.push(pNode-&m_nLeft);
if (pNode-&m_nRight != NULL)
q.push(pNode-&m_nRight);
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:251514次
积分:4527
积分:4527
排名:第5825名
原创:195篇
评论:47条
阅读:5530
文章:20篇
阅读:35893
(2)(2)(5)(1)(2)(2)(1)(4)(5)(10)(2)(20)(52)(39)(18)(17)(15)(4)(3)> 问题详情
下列叙述中,不符合m阶B-树定义要求的是()。A.根节点最多有m棵子树B.所有叶结点都在同一层上C.各结
悬赏:0&答案豆
提问人:匿名网友
发布时间:
下列叙述中,不符合m阶B-树定义要求的是()。A.根节点最多有m棵子树B.所有叶结点都在同一层上C.各结点内关键字均升序或降序排列D.叶结点之间通过指针链接请帮忙给出正确答案和分析,谢谢!
为您推荐的考试题库
您可能感兴趣的试题
1下面关于图的遍历说法不正确的是(&&)。A.遍历图的过程实质上是对每个顶点查找其邻接点的过程B.深度优先搜索和广度优先搜索对无向图和有向图都适用C.深度优先搜索和广度优先搜索对顶点访问的顺序不同,它们的时间复杂度也不相同D.深度优先搜索是一个递归的过程,广度优先搜索的过程中需附设队列2下列关于无向连通图特性的叙述中,正确的是(&&)。&Ⅰ.所有顶点的度之和为偶数&Ⅱ.边数大于顶点个数减1&Ⅲ.至少有一个顶点的度为1A.只有ⅠB.只有ⅡC.Ⅰ和ⅡD.Ⅰ和Ⅲ3下述几种排序方法中,要求内存量最大的是(&&)。A.插入排序B.选择排序C.快速排序D.归并排序4对下列4个序列用快速排序方法进行排序,以序列的第1个元素为基准进行划分。在第1趟划分过程中,元素移动次数最多的是(&&)。A.70,75,82,90,23,16,10,68B.70,75,68,23,10,16,90,82C.82,75,70,16,10,90,68,23D.23,10,16,70,82,75,68,90
我有更好的答案
请先输入下方的验证码查看最佳答案
图形验证:
验证码提交中……
享三项特权
享三项特权
享三项特权
选择支付方式:
支付宝付款
郑重提醒:支付后,系统自动为您完成注册
请使用微信扫码支付(元)
支付后,系统自动为您完成注册
遇到问题请联系在线客服QQ:
请您不要关闭此页面,支付完成后点击支付完成按钮
遇到问题请联系在线客服QQ:
恭喜您!升级VIP会员成功
常用邮箱:
用于找回密码
确认密码:扫二维码下载作业帮
拍照搜题,秒出答案,一键查看所有搜题记录
下载作业帮安装包
扫二维码下载作业帮
拍照搜题,秒出答案,一键查看所有搜题记录
数据结构中树的阶指的是什么就是B树那,一会说是三阶树,一会说是四阶树,这个“阶”具体指什么,是树的层数,还是关键字个数或是其他的什么详细点谢谢啦
爱瑞欣13憤轀
扫二维码下载作业帮
拍照搜题,秒出答案,一键查看所有搜题记录
阶:可理解为分支数.三阶树也可理解三叉树
为您推荐:
其他类似问题
扫描下载二维码

我要回帖

更多关于 activiti 自定义节点 的文章

 

随机推荐