试题详情
- 简答题设计算法,判断一棵二叉树是否为完全二叉树。
- 根据完全二叉树的定义可知,对完全二叉树按照从上到下、从左到右的次序(即层序)遍历应该满足:
⑴若某结点没有左孩子,则其一定没有右孩子;
⑵若某结点无右孩子,则其所有后继结点一定无孩子。若有一结点不满足其中任意一条,则该二叉树就一定不是完全二叉树。因此可采用按层次遍历二叉树的方法依次对每个结点进行判断是否满足上述两个条件。为此,需设两个标志变量BJ和CM,其中BJ表示已扫描过的结点是否均有左右孩子,CM存放局部判断结果及最后的结果。
具体算法如下:
关注下方微信公众号,在线模考后查看
热门试题
- 对于长度为n的线性表,若采用分块查找(假
- 广义表A=((a),a)的表头是()。
- 图的邻接矩阵表示法适用于表示()。
- 假定一组记录为(46,79,56,38,
- 索引顺序文件既能进行()存取,又能进行(
- 数据结构里,哪些选项属于数据的范畴()。
- 空格串是(),其长度等于()。
- 在由尾指针rear指示的单循环链表中,在
- 循环队列
- 设顺序表的长度为n,则顺序查找的平均比较
- 下面()不是算法所必须具备的特性。
- 定义了一个结构体类型的普通变量,要使用其
- 下面关于串的的叙述中,()是不正确的。
- 一个具有767个结点的完全二叉树,其叶子
- 在一个单链表中,若要在p所指向的结点之前
- 判定一个栈ST(最多元素为m0)为空的条
- 二维数组A的每个元素是由10个字符组成的
- 在采用线性探测法处理冲突的散列表中,所有
- 栈和队列都是顺序存取的线性表,但它们对存
- 有向图G用邻接矩阵A{1。。。。。n,1