题目内容
(请给出正确答案)
[单选题]
用顺序存储结构将完全二叉树的结点逐层存储在数组B[n]中,根结点从B[1]开始存放,若结点B[i]有子女,则其左孩子的结点应是( )。
A.B[2i-1]
B.B[2i+1]
C.B[2i]
D.B[i/2]
答案
查看答案
A.B[2i-1]
B.B[2i+1]
C.B[2i]
D.B[i/2]
第1题
A、[2i-1]
B、R[2i]
C、R[2i+1]
D、R[2i+2]
第3题
以二叉链表作为二叉树的存储结构,编写以下算法:
(1)统计二叉树的叶结点个数。
(2)设计二叉树的双序遍历算法(双序遍历是指对于二叉树的每一个结点来说,先访问这个结点,再按双序遍历它的左子树,然后再一次访问这个结点,接下来按双序遍历它的右子树)。
(3)计算二叉树最大的宽度(二叉树的最大宽度是指二叉树所有层中结点个数的最大值)。
(4)用按层次顺序遍历二叉树的方法,统计树中具有度为1的结点数目。
(5)求任意二叉树中第一条最长的路径长度,并输出此路径上各结点的值。
(6)输出二叉树中从每个叶子结点到根结点的路径。
第5题
二叉树结点数值采用顺序存储结构,如图所示。
①画出二叉树表示。
②写出前序遍历,中序遍历和后序遍历的结果。
③写出值为c的结点的父结点及其左、右孩子。
④画出把此二叉树还原成森林的图。
第7题
A、2k
B、2k+1
C、2k-1
D、2k
第10题
二叉树以二叉链表存储,写出对二叉树进行先序遍历的非递归算法。
解题思路:二叉树的先序遍历非递归算法利用栈结构,从二又树的根结点开始,输出结点信息,同时将结点指针入栈,然后顺着左子树,依次将其左子树各个结点值输出,同时结点指针入栈,直到左子树为空;然后让栈顶指针出栈,接着处理右子树。