试题详情
- 简答题设计算法,判断一棵二叉树是否为完全二叉树。
- 根据完全二叉树的定义可知,对完全二叉树按照从上到下、从左到右的次序(即层序)遍历应该满足:
⑴若某结点没有左孩子,则其一定没有右孩子;
⑵若某结点无右孩子,则其所有后继结点一定无孩子。若有一结点不满足其中任意一条,则该二叉树就一定不是完全二叉树。因此可采用按层次遍历二叉树的方法依次对每个结点进行判断是否满足上述两个条件。为此,需设两个标志变量BJ和CM,其中BJ表示已扫描过的结点是否均有左右孩子,CM存放局部判断结果及最后的结果。
具体算法如下:
关注下方微信公众号,在线模考后查看
热门试题
- 图的()优先搜索遍历算法是一种递归算法,
- 若一个元素序列基本有序,则选用()排序较
- 二叉树的所有结点的层次的最大值是()。
- 线性表的逻辑结构是()结构,其所含结点的
- 堆排序是一种稳定的排序算法。
- 在一棵具有五层的满二叉树中,结点总数为(
- 在队列中能插入、删除的一端分别称为()。
- 已知某树的先根遍历次序为abcdefg,
- 设有一个10阶的下三角矩阵A(包括对角线
- 表达式求值是()应用的一个典型例子。
- 数据结构里,二叉树的形态可以是()。
- 用顺序存储结构存储串S,编写算法删除S中
- 值传递和地址传递具体如何区分是通过()来
- 请列举出一些可以归纳成数组、矩阵、字符串
- 已知一组待排序的记录关键字初始排列如下:
- 采用链接方式存储线性表的优点是()
- 影响外排序的时间因素主要是内存与外设交换
- 当向一个最小堆插入一个具有最小值的元素时
- 消除递归不一定需要使用栈。
- 生成树