具有100个结点的二叉树中,若用二叉链表存储,其指针域部分用来指向结点的左、右孩子,其余()个指针域为空。
A.50
B.99
C.100
D.101
A.50
B.99
C.100
D.101
用二叉链表表示具有n个结点的二叉树时,值为空的指针域的个数为 ()
A.n-1
B.n
C.n+1
D.2n
以二叉链表作为二叉树的存储结构,编写以下算法:
(1)统计二叉树的叶结点个数。
(2)设计二叉树的双序遍历算法(双序遍历是指对于二叉树的每一个结点来说,先访问这个结点,再按双序遍历它的左子树,然后再一次访问这个结点,接下来按双序遍历它的右子树)。
(3)计算二叉树最大的宽度(二叉树的最大宽度是指二叉树所有层中结点个数的最大值)。
(4)用按层次顺序遍历二叉树的方法,统计树中具有度为1的结点数目。
(5)求任意二叉树中第一条最长的路径长度,并输出此路径上各结点的值。
(6)输出二叉树中从每个叶子结点到根结点的路径。
设二叉树根结点的层次为0,一棵高度为h的满二叉树中的结点个数是()
A.2h
B.2h-1
C.2h-1
D.2h+1-1
A.elemHead
B.elemTail
C.elemHead->next和elemHead
D.elemTail->next和elemTail
A.无头结点的单向链表
B.带头结点的单向链表
C.带头结点的双循环链表
D.带头结点的单循环链表
假设在算法描述语言中引入指针的二元运算“异或”,若a和b为指针,则的运算结果仍为原指针类型,且
则可利用一个指针域来实现双向链表L。链表L中的每个结点只含两个域:data域和LRPtr域,其中L RPtr域存放该结点的左邻与右邻结点指针(不存在时为NULL) 的异或。若设指针L.Left指向链表中的最左结点,L.Right指向链表中的最右结点, 则可实现从左向右或从右向左遍历此双向链表的操作。试写一算法按任一方向依次输出链表中各元素的值。
以下说法错误的是 ()
A.一般在哈夫曼树中,权值越大的叶子离根结点越近
B.哈夫曼树中没有度数为1的分支结点
C.若初始森林中共有n裸二叉树,最终求得的哈夫曼树共有2n-1个结点
D.若初始森林中共有n裸二叉树,进行2n-1次合并后才能剩下一棵最终的哈夫曼树