(1)沿袭5-60题使用逆转链遍历二叉树的思想。
(2)不使用tag标志,而是用内嵌的栈代替tag的作用。该内嵌的栈使用了叶结点作为栈的结构,没有另外定义栈的存储空间。
(3)利用栈解决在回溯时分辨究竟是从左子树还是右子树上升的问题,步骤是:
①当进入有非空左子树的结点的右子树时,将该结点的地址进栈。
②在回溯过程中如遇到结点的左、布子树都非空时,如果该结点就是存于栈顶的结点,则可判定当前是从该结点的右子树退回,该结点的右子女指针指向它的父结点;否则当前是从该结点的左子树退回,该结点的左子女指向它的父结点。
【题目描述】
●n个结点的二叉树,若用二叉链表作为存贮结构,则左、右子链域的总数为 (45) 个,其中 (46) 个用于链接子结点, (47) 个空闲着。
(45) A.n
B.n-1
C.n+1
D.n-2
(46) A.n-1
B.n
C.n+1
D.n-2
(47) A.n+10
B.n
C.n+1
D.n+9
问题1【我提交的答案】: A |
【参考答案与解析】: 正确答案:B |
问题2【我提交的答案】: D |
【参考答案与解析】: 正确答案:A |
问题3【我提交的答案】: A |
【参考答案与解析】: 正确答案:C |
【解析】①二叉树中每个结点有两个子链域,故n个结点有n-1个左、右子链域。②除根结点之外,其他每个结点都有且仅有一个分支,故n个结点的二叉树中有n-1个分支;而这些分支是由上一层结点的子链域发出的,因此n个结点的二叉树中有n-1个链域链接孩子。③空闲的孩子链域数=2n-(n-1)=n+1。
【我的疑问】(如下,请求专家帮助解答)
二叉链树有n个节点 那应该有2n个子链域 为什么是n-1?
n个节点有n-1个分支? 请大家为我解答下 谢谢了
A.二叉树为空或只有一个结点
B.若二叉树不为空,则任一结点不能同时拥有左孩子和右孩子
C.若二叉树不为空,则任一结点没有左孩子
D.若二叉树不为空,则任一结点没有右孩子