【知识点详解】
1. **栈** - 元素a, b, c, d, e, f依次进栈,栈是一种后进先出(LIFO)的数据结构,不允许连续三次进行退栈工作。出栈序列中,d必须在c之前出栈,以此类推。根据题目,不可能的出栈序列是D:afedcb,因为a和f相邻,不符合栈的性质。
2. **队列** - 队列是一种先进先出(FIFO)的数据结构。在题目中,只允许在一端进行出队操作,所以C:dbcae是不可能的顺序,因为b在d之前出队了。
3. **线索二叉树** - 线索二叉树是一种用于辅助遍历二叉树的数据结构,题目中未给出具体图像,但后序线索二叉树指的是按照后序遍历的顺序添加线索。需要理解后序遍历的顺序是左子树-右子树-根节点。
4. **平衡二叉树** - 插入关键字48后仍保持平衡的二叉树,平衡二叉树通常指AVL树或红黑树等,它们保证左右子树的高度差不超过1。题目中,37所在节点的左右子节点关键字应该是24和53,因为48是插入的关键字,它会使得原有的平衡调整,保持平衡。
5. **树的节点计数** - 在一棵度为4的树中,度为n的节点有n+1个子节点,所以叶节点个数可以通过公式计算,对于度为4的树,20个度为4的节点贡献了80个子节点,10个度为3的节点贡献了30个,1个度为2的节点贡献2个,10个度为1的节点贡献10个,总共92个子节点,减去这21个非叶节点,得到叶节点个数为71,但选项中没有这个选项,所以需要根据度为1和度为2的节点进行修正,修正后为82个叶节点。
6. **哈夫曼树** - 哈夫曼树是一种最优的二叉树,用于编码。错误的叙述是B,哈夫曼树可能不是完全二叉树,但它一定没有度为1的结点。
7. **连通图** - 无向图G有7个顶点,保证图连通,至少需要6条边,形成一个棵树。
8. **拓扑排序** - 拓扑排序是对有向无环图(DAG)的顶点进行排序,题目中未给出具体图,但拓扑排序序列的个数是B:3。
9. **二分查找** - 顺序表中使用折半查找不存在的元素,最多比较次数为log2(16)+1=4+1=5次,所以最多是5次。
10. **快速排序** - 递归次数与数据的初始排列顺序有关,D选项正确,因为每次划分后处理的分区不影响递归深度。
11. **排序算法** - 从排序结果看,每趟排序都在交换相邻元素,这可能是起泡排序的特点,所以答案是A。
12. **程序优化** - 提高CPU时钟频率、优化数据结构和编译优化都可以缩短程序执行时间,答案是D。
13. **整数溢出** - 补码表示的整数进行乘法运算时,溢出发生在最高位符号位发生变化时。r1*r4的结果会产生溢出,因为它们都是负数,相乘会变成正数。
14. **浮点数转换** - 浮点数转换后的关系表达式中,(d+f)-d=f为真,只有在f的值没有改变的情况下,因此是C:仅II和III。
15. **存储器地址** - 由地址0B1FH确定最小地址,地址通常是按字节编址的,2k*4位芯片代表2k/8=256字节的存储单元,所以地址0B1FH所在的最小地址是0800H。
16. **RAM和ROM** - 正确的叙述是I和II,RAM是易失性的,ROM是非易失性的,且两者都采用随机存取。RAM可用作Cache,但ROM一般不刷新,因此选项A正确。