2012年-全国计算机-408统考-错题、难点总结

选择题

数据结构部分

  1. P190 T2 做对,难点难题,总结
    在这里插入图片描述
    考点:中缀转后缀的机器计算过程

当时这题没有用完整的计算来做,只做到了最多的括号在栈中,就选了
完整的流程如下:
在这里插入图片描述
中缀表达式转换后缀表达式过程:
①从左往右扫描中缀表达式,如果遇到操作数,则直接输出到表达式队列中
②如果遇到操作符,则把栈中优先级大于等于当前遇到的操作符的操作符依次弹出,遇到’(’,或者栈为空则停止弹出,再把该当前遇到的操作符入栈
③如果遇到’)‘界限符,则把栈中的运算符依次弹出,直到把’(‘左括号弹出为止。注意的是’)'右括号是不会入栈的,只用作代码的出栈判断符
④处理完所有的字符后,把运算符栈中的运算符依次弹出加入到表达式队列中

类似题目有:在这里插入图片描述
在这里插入图片描述

空闲的时候我查了中缀转前缀的机算过程,过于复杂,嗯嗯!


  1. P190 T3 做对,这题的结论在2011年真题 T5的时候有说过
    在这里插入图片描述

给出前序和后序序列,虽然不能确定一颗二叉树,那么我们知道存在即是合理,肯定有它存在的意义,从前序和后序序列中,我们可以确定的是每两个点之间的关系–是祖先关系

如:这题中
通过先序序列a的位置和后序序列a的位置可以得出,a是b,c,d,e的祖先
因为后序遍历是最后才访问根的
而在通过其前序遍历的第二个结点e,通过在后序遍历中的e位置可得,e是b,c,d的祖先,那么这题就完成了,因为a,b,c,d,e都已经划分完集合,那么只要e直接和a根节点相连。

总结得到----太阳学长的肯定–善于思考

举一反三系列,对这道题进行加强:这道题的根节点只有一个孩子,我对这道题进行了加强,对根节点再加一个孩子。那么通过前序和后序遍历的序列怎么判断出来3和5是1的孩子,2和7是3的孩子,10是5的孩子呢?在这里插入图片描述
前序序列:1,3,2,7,5,10
后序序列:2,7,3,10,5,1
通过前序序列第一个访问的元素来判断每一颗子树的祖先。
在前序序列中第一个访问的元素是1,那么通过后序遍历序列1的位置可以得到1是2,7,3,10,5的祖先。
在先序序列中第二个访问的元素是3,那么通过后序遍历序列3的位置可以得到3是2,7的祖先。
而因为3的子树已划定了范围了就是后序遍历3之前的序列,那么就在前序序列中跳过这些元素2和7都不是直接和1相连的,而前序序列是先访问根的,访问完3的子树,那么必定会访问1的右子树,且先访问自己的孩子,那么在前序序列中3的子树集合的下一个访问的元素就是根节点1的孩子。因此5就是根节点1的孩子,那么在后序遍历中找5所在的位置,就可以确定以根节点为5的元素集合了,划分时不包括已经划分集合的元素,如2和7已经划分到了3为根节点的子树中了,那么在后序遍历中5是10的祖先了。
到此就可以确定
①1的左右孩子了:1的直接相连的孩子左右孩子为3和5。
②3的孩子为2和7
③5的孩子为10

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值