数据结构判断题 消除递归不一定需要使用栈

一道考研真题。自己拿不太准,请高人指点一二。最好有详细或权威的解释,先谢谢大家啦。
还有两个判断题:
1、B_树中所有节点的平衡因子都为0( )

2、在外排序中,即使工作区长度w远远小于n,也可能通过一次“置换-选择”排序完成n个初始序列记录的全部排序。( )

证明题:由n(n>1)个权值所构造的huffman树中不存在度为1的节点.
中科院98年考研真题-判断题:消除递归不一定需要使用栈( )
我觉得如果用工具消除递归一定要用到栈。但是有的算法可以用递归也可以用非递归实现,不知道这样算不算消除非递归。

1.对 可以看看B_树的构造,因为每个节点的其关键的个数必须一定小于其分支个数。
2 对 可能原本排序序列就是有序的
3 反证法:若存在度为1的节点,那么该节点有一个子树。设该节点为A,子节点为B。因为A是由B与另一个节点相加而得,而现在只有一个节点,那么A=B。将AB合并为一个节点,则B以下的叶子结点路径长度减少,树的带权路径长度减少,合并后其带权路径之和小于原树,而哈夫曼树已经是带权路径长度最短的树,所以与原树是哈夫曼树相悖,所以假设不成立。(copy过来的#^_^#
4 消除递归不一定用栈 不是有很多递归消除可以用循环
ps 虽然回答有些晚 但是万一有其他比我还晚的人搜索到了呢😊
温馨提示:答案为网友推荐,仅供参考
第1个回答  2007-01-14
1.对 2.错
相似回答