- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
2012年山东科技大学数据结构与操作系统--真题及参考答案.doc
数据结构与操作系统Z试卷
《数据结构》部分 (90分)
一、简答题(20分,每题5分)
1、请给出四种数据结构基本类型。
答:根据数据元素之间关系的不同特征,通常有下列4类的基本结构:
集合。。。
线性结构。。。
树形结构。。。
图状结构或网状结构。。。
2、简述栈和队列的区别。(P44;P58)
区别和联系:
从数据结构上看,栈和队列也是线性表,不过是两种特殊的线性表。
栈只允许在表的一端进行插入或删除操作,
队列只允许在表的一端进行插入操作、而在另一端进行删除操作。
因而,栈和队列也可以被称作为操作受限的线性表。
3、什么是关键路径?(P183)
在AOE网中,有些活动可以并行地运行,最短完成时间应是从源点到汇点的最长路径长度(指路径上所有权值之和),称这样的路径为关键路径。
4、插入类排序有哪几种?其中,哪些是不稳定的排序算法?(P265)
二、应用题(40分)
1、如果进栈的序列是12345,请给出所有3、4先出栈的序列(3在4之前出栈)。(5分)(P)
【解答】34215??,34251,??34521
(可以参考下面这个题:
【¥】铁路进行列车调度时,常把站台设计成栈式结构,若进站的六辆列车顺序为:1,2,3,4,5,6,?那么是否能够得到435612,?325641,?154623和135426的出站序列,如果不能,说明为什么不能;?如果能,?说明如何得到(即写出进栈或出栈的序列)。??
【解答】输入序列为123456,不能得出435612和154623。不能得到435612的理由是,输出序列最后两元素是12,前面4个元素(4356)得到后,栈中元素剩12,且2在栈顶,不可能让栈底元素1在栈顶元素2之前出栈。不能得到154623的理由类似,当栈中元素只剩23,且3在栈顶,2不可能先于3出栈。?
得到325641的过程如下:1?2?3顺序入栈,32出栈,得到部分输出序列32;然后45入栈,5出栈,部分输出序列变为325;接着6入栈并退栈,部分输出序列变为3256;最后41退栈,得最终结果325641。?
???得到135426的过程如下:1入栈并出栈,得到部分输出序列1;然后2和3入栈,3出栈,部分输出序列变为13;接着4和5入栈,5,4和2依次出栈,部分输出序列变为13542;最后6入栈并退栈,得最终结果135426。)
2、给出先缀表达式“- + a * b – c d / e f”对应的后缀式,画出其相应的二叉树,并画出该二叉树的中序线索树。(10分)(P129)
3、某带权有向图及它的邻接表如下图所示,试写出它的广度优先搜索序列,并根据克鲁斯卡尔算法,求它的最小生成树。(10分)
广度优先搜索序列:(P167)
A--B--C--D--E--F--G--H
克鲁斯卡尔算法,求最小生成树:(P173)
4、请写出应填入下列叙述中( )内的正确答案。排序有各种方法,如插入排序、快速排序、堆排序、冒泡排序等。设一数组中原有数据如下:15,13,20,18,12,60。下面是一组由不同排序方法进行一遍排序后的结果。(15分)(必须对算法的具体步骤有详细的了解,认真看看书吧P263)
(①)排序的结果为:1213,15,18,20,60
(②)排序的结果为:1315,18,12,20,60
(③)排序的结果为:1315,20,18,12,60
【参考答案】①快速排序??????②冒泡排序??????③直接插入排序?
三、算法设计题(30分)
答题要求:
①用自然语言说明所采用算法的思想;
②给出每个算法所需的数据结构定义,并做必要说明;
③用C语言写出对应的算法程序,并做必要的注释。
1、已知有一个单向循环链表,其每个结点中含三个域:prior, data 和next,其中data为数据域,next为指向后继结点的指针域,prior也为指针域,但它的值为空(NULL),试编写算法将此单向循环链表改为双向循环链表,即使prior成为指向前驱结点的指针域。(15分)
2、编写算法,在二叉树中求位于中序序列中第k个位置的结点的值。(15分)(P129)
分析:实际上是在考察中序遍历,然后在中序遍历中加上一个count变量,用来计数以确定是第几个位置。(一下代码参见P131)
TElemType InOrderTraverse(Bitree T, Status( * visit)(TElemType e)){
InitStack(S);
p=T;
Count=0;
While(p|| !StackEmpty(S)){
If(p){
Push(S,p);
p=p-lchild;
}
Else{
Pop(S,p);
If(!visit(p-data))
Return error;
//出栈一个数,统
您可能关注的文档
- 2012-2013学年度第二学期思想品德复习导学案.doc
- 2012-2013学年新人教版高一语文必修二能力拓展6).doc
- 2012-2013学年第一学期 2012级新生大学体育课选课指南.doc
- 2012-2013学年第二学期期初高三教学质量调研 生物试题.doc
- 2012-2013年五年级(下)第六单元统计数学试卷答案.doc
- 2012-2013年度第二学期期末考试试题及答案.doc
- 2012-2013年河海大学高等土力学试卷.doc
- 2012-2013珠海高一下学期质检生物A卷.doc
- 2012-2013第一学期期终考试初一思想品德试题.doc
- 2012-2013高二数学选修2-3导学案.doc
文档评论(0)