2015年11月 程序员 上午题之十三
摘要:对于【程序员】软考考试而言,真题无疑是最重要的学习资料之一。在软考备考过程中,吃透真题、掌握真题所考知识点、熟悉真题的出题思路,对我们提升分数的效果是最明显的,通过对真题的反复练习,还可以查漏补缺。今天,给大家带来【2015年11月 程序员 上午题】部分真题的详解,一起来看看吧~1、若栈采用链式存储且仅设头指针,则( )时入栈和出栈操作最方便。A、 采用不含头结点的单链
1、若栈采用链式存储且仅设头指针,则( )时入栈和出栈操作最方便。
A、 采用不含头结点的单链表且栈顶元素放在表尾结点
B、 采用不含头结点的单链表且栈顶元素放在表头结点
C、 采用含头结点的单循环链表且栈顶元素随机存放在链表的任意结点
D、 采用含头结点的双向链表且栈顶元素放在表尾结点
答案:B
答题解析:
本题考查数据结构基础知识。
栈的操作要求是后进先出,而且仅在表尾一端加入和删除元素。对单链表进行操作时,必须从头指针出发。根据栈的操作要求,单循环链表和双向链表都是没有必要的,而且选项c中将栈顶元素任意存放是错误的。
可以采用单链表作为栈的存储结构,将表头作为栈顶来使用。
含头结点的单链表如下图所示,其中La为头指针,La指向的结点为头结点。
不含头结点且栈顶元素放在表尾结点的单链表如下图所示,其中La为头指针,La指向的结点存储了先进入栈且没有出栈的元素。显然,因为要从La出发遍历至表尾才能进行入栈和出栈操作,在这种情况下出栈和入栈都是最低效的,时间复杂度都是O(n)。
如果采用不含头结点且栈顶元素放在表头的单链表,如下图所示,出栈和入栈操作都在表头,时间复杂度都为O(1)。
2、三个互异的元素a、b、c依次经过一个初始为空的栈后,可以得到( )种出栈序列。
A、 6
B、 5
C、 3
D、 1
答案:B
答题解析:
本题考查数据结构基础知识。
a、b、c三个互异元素构成的全排列有6种,为abc,acb,bac,bca,cba,cab。如果入栈顺序为abc,则除了cab,其他序列都可通过合法的入栈和出栈操作排列得到。
3、最优二叉树(或哈夫曼树)是指权值为w1,w2,…,wn的n个叶结点的二叉树中带权路径长度最小的二叉树。( )是哈夫曼树(叶结点中的数字为其权值)。
A、
B、
C、
D、
答案:A
答题解析:
本题考查数据结构基础知识。
哈夫曼树又称为最优二叉树,是一类带权路径长度最短的树。
树的带权路径长度(WPL)为树中所有叶子结点的带权路径长度之和,记为
其中n为带权叶子结点数目,wk为叶子结点的权值,lk为根到叶子结点的路径长度。
选项A所示二叉树的WPL=(2+4)*3+5*2+7*1=35
选项B所示二叉树的WPL=(2+4+5+7)*2=36
选项C所示二叉树的WPL=(5+7)*3+4*2+2*1=46
选项D所示二叉树的WPL=(4+5)*3+7*2+2*1=43
查看完整试题>>>
软考资料: 2024年软考论文范文> 软考考试核心重点难点汇总> 查看更多>
备考刷题:章节练习+每日一练> 软考历年试题+模拟题>查看更多>