当前位置: 首页icon 51CTO软考 > 软考资讯 >考试科目 >2015年11月 程序员 上午题之十三

2015年11月 程序员 上午题之十三

作者:mb63219befd42712023-11-03 01:00:12
备考咨询 刷题指导
添加专属学姐
下载资料 2024上半年软考备考资料+考试大纲
下载按钮 下载
引号

摘要:对于【程序员】软考考试而言,真题无疑是最重要的学习资料之一。在软考备考过程中,吃透真题、掌握真题所考知识点、熟悉真题的出题思路,对我们提升分数的效果是最明显的,通过对真题的反复练习,还可以查漏补缺。今天,给大家带来【2015年11月 程序员 上午题】部分真题的详解,一起来看看吧~1、若栈采用链式存储且仅设头指针,则( )时入栈和出栈操作最方便。A、 采用不含头结点的单链

引号
摘要:对于【程序员】软考考试而言,试题无疑是最重要的学习资料之一。在软考备考过程中,吃透试题、掌握试题所考知识点、熟悉试题的出题思路,对我们提升分数的效果是最明显的,通过对试题的反复练习,还可以查漏补缺。今天,给大家带来【2015年11月 程序员 上午题】部分试题的详解,一起来看看吧~



1、若栈采用链式存储且仅设头指针,则( )时入栈和出栈操作最方便。
A、 采用不含头结点的单链表且栈顶元素放在表尾结点
B、 采用不含头结点的单链表且栈顶元素放在表头结点
C、 采用含头结点的单循环链表且栈顶元素随机存放在链表的任意结点
D、 采用含头结点的双向链表且栈顶元素放在表尾结点

答案:B
答题解析:

本题考查数据结构基础知识。
栈的操作要求是后进先出,而且仅在表尾一端加入和删除元素。对单链表进行操作时,必须从头指针出发。根据栈的操作要求,单循环链表和双向链表都是没有必要的,而且选项c中将栈顶元素任意存放是错误的。
可以采用单链表作为栈的存储结构,将表头作为栈顶来使用。
含头结点的单链表如下图所示,其中La为头指针,La指向的结点为头结点。
1.jpg
不含头结点且栈顶元素放在表尾结点的单链表如下图所示,其中La为头指针,La指向的结点存储了先进入栈且没有出栈的元素。显然,因为要从La出发遍历至表尾才能进行入栈和出栈操作,在这种情况下出栈和入栈都是最低效的,时间复杂度都是O(n)。
2.jpg
如果采用不含头结点且栈顶元素放在表头的单链表,如下图所示,出栈和入栈操作都在表头,时间复杂度都为O(1)。
3.jpg



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、 1.jpg
B、 2.jpg
C、 3.jpg
D、 4.jpg

答案:A
答题解析:

本题考查数据结构基础知识。
哈夫曼树又称为最优二叉树,是一类带权路径长度最短的树。
树的带权路径长度(WPL)为树中所有叶子结点的带权路径长度之和,记为
1.jpg
其中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



查看完整试题>>>


代理合作学习群