2016年11月 程序员 上午题之十三
摘要:对于【程序员】软考考试而言,真题无疑是最重要的学习资料之一。在软考备考过程中,吃透真题、掌握真题所考知识点、熟悉真题的出题思路,对我们提升分数的效果是最明显的,通过对真题的反复练习,还可以查漏补缺。今天,给大家带来【2016年11月 程序员 上午题】部分真题的详解,一起来看看吧~1、设元素a、b、c、d依次进入一个初始为空的栈,则不可能通过合法的栈操作序列得到(38)。
1、设元素a、b、c、d依次进入一个初始为空的栈,则不可能通过合法的栈操作序列得到(38)。
A、 a b c d
B、 b a d c
C、 c a d b
D、 d c b a
答案:C
答题解析:
本题考查数据结构基础知识。
栈的运算特点是后进先出,若栈中有秦个元素,必须是栈顶的元素先出桟。一般情况下,在一个有入栈和出桟操作构成的序列中,只要在任何一个桟操作之前,入栈操作不少于出栈操作的次数即可。若用I表示A栈、0表示出找,则选项A的序列可以由IOIOIOIOIO操作序列得到;选项B由IIOOIIOO操作序列得到;选项D由IIIIOOOO得到,选项C不能由合法的操作序列得到。
2、若要求对大小为n的数组进行排序的时间复杂度为O(nlog2n),且是稳定的(即如果待排序的序列中两个数据元素具有相同的值,在排序前后它们的相对位置不变),则可选择的排序方法是(39)。
A、 快速排序
B、 归并排序
C、 堆排序
D、 冒泡排序
答案:B
答题解析:
A. 快速排序
B. 归并排序
C. 堆排序
D. 冒泡排序
答案解析:B
本题考查数据结构基础知识。
快速排序、归并排序、堆排序是时间复杂度为0(nlog2n)的排序方法,冒泡排序的时间复杂度是0(n2)。
快速排序的过程主要是划分操作,划分是以基准元素为界,从序列的两端向中间扫描,将大于基准元素者往后端移动(或交换),不大于基准元素者向前端移动(或交换),移动元素时不考虑所涉及两个位置之间的其他元素,这样就不能保证序列中两个相同元素的相对位置不变,也就是说快速排序是不稳定的排序方法。
堆排序是要求序列中ai,a2i,a2i-1这三个元素满足ai最小(小顶堆)或最大(大顶堆),若不满足,则通过交换进行调整,这样,在ai与a2i之间若有相等的两个元素,则交换后就不能保证它们的相对位置,所以堆排序是不稳定的排序方法。
归并排序是稳定的排序方法。
3、对于一般的树结构,可以采用孩子-兄弟表示法,即每个结点设置两个指针域,一个指针(左指针)指示当前结点的第一个孩子结点,另一个指针(右指针)指示当前结点的下一个兄弟结点。某树的孩子-兄弟表示如下图所示。以下关于结点D与E的关系的叙述中,正确的是(40)。
A、 结点D与结点E是兄弟
B、 结点D与结点E的祖父结点
C、 结点E的父结点与结点D的父结点是兄弟
D、 结点E的父结点与结点D是兄弟
答案:D
答题解析:
本题考查数据结构基础知识。
按照树的孩子-兄弟表示法,题图二叉树对应的树如下图所示。
结点E的父结点是C,结点C与D是兄弟关系。
查看完整试题>>>
软考资料: 2024年软考论文范文> 软考考试核心重点难点汇总> 查看更多>
备考刷题:章节练习+每日一练> 软考历年试题+模拟题>查看更多>