真题讲解18年软专真题讲解:先序和中序画二叉树&出栈&插入排序

Posted 丽娃软工考研

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了真题讲解18年软专真题讲解:先序和中序画二叉树&出栈&插入排序相关的知识,希望对你有一定的参考价值。

☝☝☝  华东师大软工考研独家平台


撰稿 | 康康哥

编辑 | 丽丽姐

康哥答疑微信:liwaRG

本文由华师软工博士学长原创



离考研上场还有14天,

考研进入了最后的复习冲刺阶段,

一起来看下镜头中的华师大有多美~


【真题讲解】18年软专真题讲解:先序和中序画二叉树&出栈&插入排序

师大进门直走,过了丽虹桥,就能看到校训:“求实创新,为人师表” 


【真题讲解】18年软专真题讲解:先序和中序画二叉树&出栈&插入排序

闵行的樱花 ▲


【真题讲解】18年软专真题讲解:先序和中序画二叉树&出栈&插入排序

还有今年实验室毕业硕士们的offers 


师大,在这里等你。


上期我们讲解了18年试卷的简答题1、2,本期将会分析18年试卷的简答3、4、5题。



【真题讲解】18年软专真题讲解:先序和中序画二叉树&出栈&插入排序

华东师大软专真题讲解(14)


先序和中序画二叉树&出栈&插入排序


大家好,我是华师康哥,软工博士在读:


在这里,我会给大家逐一讲解华师软工专业课的真题,希望能给小伙伴们带来一些帮助。


上期我们讲解了18年试卷的简答题1、2,本期将会分析18年试卷的简答3、4、5题。





简答题 3

通过先序和中序,能不能画二叉树,并解释为什么能画出来,并画出二叉树,再问先序和后序能不能画出?给出解释说明。


假设已有二叉树

先序遍历为 { 1、2、4、7、3、5、6、8 };

中序遍历为 { 4、7、2、1、5、3、8、6 };


根据先序的从前往后查找确定根结点,根据中序确定根结点的左右子树。


由先序遍历得二叉树的根结点为1,左右子树为,左子树 {4,7,2},右子树 {5,3,8,6}

回到先序遍历观察左子树的根结点为2,{4,7}都为左左子树,而右子树为根结点为3,右左子树为5,右右子树为 {8,6}


同样的方法,据此对 {4,7},{8,6} 确定左右子树,得到整棵树如下:


【真题讲解】18年软专真题讲解:先序和中序画二叉树&出栈&插入排序


然而由先序序列和后序序列不能唯一确定一棵二叉树。



简答题 4

给出顺序15个整数和出栈序列,让解释每次出栈前的栈内状态,并计算栈最少容量。


栈(stack)又名堆栈,它是一种运算受限的线性表


其限制是仅允许在表的一端进行插入和删除运算。这一端被称为栈顶,相对地,把另一端称为栈底。向一个栈插入新元素又称作进栈、入栈或压栈,它是把新元素放到栈顶元素的上面,使之成为新的栈顶元素;从一个栈删除元素又称作出栈或退栈,它是把栈顶元素删除掉,使其相邻的元素成为新的栈顶元素。

 

例如:有一个数列(23,45,3,7,3,945)

我们先对其进行进栈操作,则进栈顺序为:23,45,3,7,3,945(放盒子)

我们再对其进行出栈操作,则出栈顺序为:945,3,7,3,45,23(盒子中拿)


为了方便,我们通常做到:出栈后不再进栈。


进栈出栈就像一个盒子,先一个个放入盒内,而拿出的时候只有先从上面拿,才能再拿下面。



简答题 5

解释直接插入排序的原理,对给出的序列进行直插,写出过程,解释某个元素插入对比次数。


在日常生活中,经常碰到这样一类排序问题:把新的数据插入到已经排好的数据列中


例如:一组从小到大排好顺序的数据列{1,2,3,4,5,6,7,9,10},通常称之为有序列,我们用序号1,2,3,…表示数据的位置,欲把一个新的数据8插入到上述序列中。


原理:

完成这个工作的步骤:

① 确定数据“8”在原有序列中应该占有的位置序号。数据“8”所处的位置应满足小于或等于该位置右边所有的数据,大于其左边位置上所有的数据。

② 将这个位置空出来,将数据“8”插进去。


直接插入排序(straight insertion sort)的做法是:

每次从无序表中取出第一个元素,把它插入到有序表的合适位置,使有序表仍然有序。

假设{20,30,40,10,60,50}中的前3个数已经排列过,是有序的了;接下来对10进行排列。


示意图如下:


【真题讲解】18年软专真题讲解:先序和中序画二叉树&出栈&插入排序


图中将数列分为有序区和无序区。

我们需要做的工作只有两个:

(1) 取出无序区中的第1个数,并找出它在有序区对应的位置。

(2) 将无序区的数据插入到有序区;若有必要的话,则对有序区中的相关数据进行移位。




好了,下面我就要和你聊聊向往的华师科研生活了。


大家都知道,理工科同学在读研的过程中都会进实验室


不同的学科会有不同的科研任务,实验室的直接负责人便是你的导师,导师来安排你的科研方向,和你共同商量以及完成科研成果。


那么考研的复试,面试便是考量一个学生是否有科研能力的过程。


想必大家都知道,发论文对于研究生来说是一个重要环节,尤其对于走学术道路的同学来说,好的论文决定了你科研生涯的走向。


如果你在本科期间有参与过论文的发表或者重大项目的完成,那在复试阶段是不是就会更有信心呢?


康哥所在实验室是华师大人工智能实验室,主要的研究方向是计算机视觉(CV)、机器学习、自然语言处理NLP、机器人科学,深度学习,强化学习等。


如果你对人工智能较为感兴趣。

如果你本科是CS、SS、EE、ME、数学等专业方向。

如果你有较为扎实的编程功底

如果你具有良好的独立解决问题能力、团队合作和沟通能力。

欢迎明年复试前后与我联系~

康哥会领你入门哦!



【模拟考试】



【真题讲解】













【初试必读】

 

 







【真题讲解】18年软专真题讲解:先序和中序画二叉树&出栈&插入排序
软工博士带你飞
考华师 · 看丽娃

以上是关于真题讲解18年软专真题讲解:先序和中序画二叉树&出栈&插入排序的主要内容,如果未能解决你的问题,请参考以下文章

pascal给出一棵二叉树的中序与后序排列。求出它的先序排列(帮忙解释一下程序)

通过遍历序列构造二叉树(扩展二叉树的先序先序和中序后序和中序层序和中序)附可执行完整代码

知道二叉树的先序和中序遍历,重建该二叉树

数据结构已知后序和中序画出该树

已知一个二叉树的先序序列和中序序列,怎么求它的后序序列

给出二叉树的先序和中序遍历,给出后序遍历