2014年山东科技大学数据结构与操作系统真题.pdf
山东科技大学数据结构与操作系统考研真题2017—2019年
同步与互斥活动,并说明所定义的信号量的含义。要求用伪代码描述。
(12 分)
《数据结构》部分
一、简答题(30 分,每题 5 分) 1、串、数组、广义表从元素间关系上可以看成线性结构,它们与 一般意义上的线性表相比有何特殊性? 2、借助栈可以实现更复杂的操作,请简述如何利用栈实现对表达 式中括号是否匹配的检验。 3、基于关键字比较的查找算法所能达到最优时间复杂度是?能否 设计一种与问题规模无关的查找算法?请给出基本思路。 4、图的广度优先遍历与树的何种遍历策略相似?请给出简单解释。 5、《数据结构》中经常采用“树形化组织”的方式来整理数据, 比如折半查找表、二叉排序树、大顶堆/小顶堆等,请简述这样 做的优点。 6、何为稳定的排序方法?何为不稳定的排序方法?哪些排序算法 是不稳定的?
①请画出该图; ②给出从顶点 3 开始的深度优先遍历序列; ③给出从顶点 4 开始的广度优先遍历序列。 3、假设有一个 10000*10000 的稀疏矩阵,期中 1%的元素为非零元 素,要求构造一个哈希表,完成以下任务。 ①设计哈希函数(根据给定非零元素的行值和列值确定其在哈
希表的位置); ②给出处理冲突的方法; ③简要分析该哈希表的查找效率。 4、设待排序的关键字序列为{13,7,16,45,36,27,17,6, 12,56},试分别完成以下任务: ①建小顶堆; ②给出以 13 为枢轴进行一趟快速排序的过程。 三、算法设计题(20 分,每题 10 分) 1、已知链表 A 和 B 分别表示元素递增的两个集合,试写一算法求 两个集合的交集,结果存放于链表 A 中。 2、已知二叉排序树采用二叉链表存储,试写一高效算法从小到大 输出二叉排序树中所有值小于 X 的结点的数据。
(2)如果在第一个时间单元(也就是到达时间为 1.0)期间,CPU 被
2012年山东科技大学数据结构与操作系统--真题及参考答案
2012年山东科技大学数据结构与操作系统--真题及参考答案数据结构与操作系统Z试卷《数据结构》部分(90分)一、简答题(20分,每题5分)1、请给出四种数据结构基本类型。
答:根据数据元素之间关系的不同特征,通常有下列4类的基本结构:(1)集合。
(2)线性结构。
(3)树形结构。
(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的过程如下:123顺序入栈,32出栈,得到部分输出序列32;然后45入栈,5出栈,部分输出序列变为325;接着6入栈并退栈,部分输出序列变为3256;最后41退栈,得最终结果325641。
山东科技大学 操作系统试卷(A,2012-2013(II))
山东科技大学2012—2013学年第二学期《操作系统》考试试卷(A卷)班级姓名学号一、单项选择题(每小题2分,共20分)1、现代OS具有并发性和共享性,是由()的引入而导致的。
A.单道程序B.多道程序C.对象D.磁盘2、在进程状态转换时,下列( )转换是不可能发生的。
A.就绪态→运行态B.运行态→就绪态C.运行态→阻塞态D.阻塞态→运行态3、从资源管理的角度看,进程调度属于( )。
A.I/O管理B.文件管理C.处理机管理D.存储器管理4、下面关于线程的叙述中,正确的是( )。
A.在引入线程的系统中,进程仍是资源分配和调度分派的基本单位B.线程是资源的分配单位,进程是调度和分配的单位C.不管系统中是否有线程,进程都是拥有资源的独立单位D.不论是系统支持线程还是用户级线程,其切换都需要内核的支持5、临界资源是()的资源。
A.非共享B.任意共享C.互斥共享D.同时共享6、在采用动态优先权的优先权调度算法中,如果所有进程都具有相同优先权初值,则此时的优先权调度算法实际上和()相同。
A.先来先服务调度算法B.短作业优先调度算法C.时间片轮转调度算法D.长作业优先调度算法7、把逻辑地址转换程物理地址称为()。
A.地址分配B.地址映射C.地址保护D.地址越界8、在内存分配的"最佳适应法"中,空闲块是按()。
A.始地址从小到大排序B.始地址从大到小排序C.块的大小从小到大排序D.块的大小从大到小排序9、设主存容量为1MB,辅存容量为400MB,计算机系统的地址寄存器有24位,那么虚存的最大容量是()。
A.1MB B.401MB C.1MB+224B D.224B10、从下面描述中正确的一条描述是()。
A.顺序文件必须采用连续分配方式,而链接文件和索引文件则可采用离散分配方式。
B.显式链接文件将分配给文件的下一个盘块的地址登记在该文件的前一个物理盘块中。
C.顺序文件适合于建立在顺序存储设备上,而不适合建立在磁盘上。
山东科技大学《数据结构》期末试卷(A卷)答案
三、应用题ห้องสมุดไป่ตู้每题10分,共40分)
1.a,b,c,d,e出现的频率分别是:14/55,7/55,10/55,3/55,21/55
2.插入关键字B,L,F,P,Q,R后的三阶B_树为:
3.(1)用第一元素中的值6作为枢轴,快速排序第一次分割后A中的结果是:
break;
case 1:
hb->next=qb->next;
qb->next=qa; ha->next=qb;
ha=qb; qb=hb->next;
break;
}
}
if (!Empty(qb)) ha->next=qb;
free(hb);
}
1.statusSearch_Updata(LinkList L, ElemType a, ElemType b)
{
if (!L) return ERROR;
p=L;
while(p->next){
if (p->data==a ) p->data=b;
p=p->next;
}
return OK
}
2.void AddPolyn(polynomial &Pa,polynomial &Pb)
{
case -1:
ha=qa;
qa=qa->next;
break;
case 0:
sum=a.coef+b.coef;
if (sum!=0.0){ qa.coef=sum; ha=qa; }
else {ha->next =qa->next; Free(qa); }
2013年山东科技大学数据结构与操作系统--真题及参考答案
《数据结构》部分一、简答题(10分,每题5分)1、数据元素之间的关系在计算机中的存储有几种表示方法?各有什么特点?(P6)解:数据元素之间的关系在计算机中有四种不同的表示方法:(1)顺序存储方法。
数据元素顺序存放,每个结点只含有一个元素。
存储位置反映数据元素间的逻辑关系。
存储密度大,但有些操作(如插入、删除)效率较差。
(2)链式存储方法。
每个结点除包含数据元素信息外还包含一组指针。
指针反映数据元素间的逻辑关系。
这种操作不要求存储空间连续,便于进行插入和删除等操作,但存储空间利用率较低。
另外,由于逻辑上相邻的数据元素在存储空间上不一定相邻,所以不能对其进行随机存取。
(3)索引存储方法。
除数据元素存储在一地址连续的内存空间外,尚需建立一个索引表。
索引表中的索引指示结点的存储位置,兼有动态和静态特性。
(4)哈希(或散列)存储方法。
通过哈希函数和解决冲突的方法,将关键字散列在连续的有限的地址空间内,并将哈希函数的值作为该数据元素的存储地址。
其特点是存取速度快,只能按关键字随机存取,不能顺序存储,也不能折半存取。
2、对于堆排序法,快速排序法和归并排序法,若仅从节省存储空间考虑,则应该首先选取其中哪种方法?其次选取哪种方法?若仅考虑排序结果的稳定性,则应该选取其中哪种方法?若仅从平均情况下排序最快这一点考虑,则应该选取其中哪些方法?(P289)答:若只从存储空间考虑,则应首先选取堆排序方法,其次选取快速排序方法,最后选取归并排序方法;若只从排序结果的稳定性考虑,则应选取归并排序方法;若只从平均情况下最快考虑,则应选取快速排序方法;若只从最坏情况下最快并且要节省内存考虑,则应选取堆排序方法。
二、应用题(55分)1、证明:同一棵二叉树的所有叶子结点,在前序序列、中序序列以及后序序列中都按相同的相对位置出现(即先后顺序相同)。
(8分)(例如先序abc,后序bca,中序bac。
)(P128) 答:【答案】先序遍历是“根左右”,中序遍历是“左根右”,后序遍历是“左右根”。
山东科技大学数据结构与操作系统07-08,2010--2020年考研初试真题
五、[15分]采用二叉链表存储树,试写一算法,实现 对树的层次遍历。
六、[15分]设计一个算法,判断无向图G是否一棵树。
操作系统部分(50分)
一:名词解释(每题3分,总计12分)
1:线程
2:死锁
3:虚拟存储器 4:中断 二:简单题(每题5分,总计20分)
2、[10分]设有一有向图G如下图所示:
1
2
6
5 3
4
(1)、画出图G的邻接表存储表示(邻接顶点请以顶 点序号递增序排列,以使答案唯一)。
(2)、写出从顶点1开始按深度优先遍历G得到的顶 点序列。 3、[10分]已知待排序的三个整数a,b和c(a≠b≠c≠a), 可能出现的六种排列情况的概率不等,其概率如下 表所示:
1、[4分]为什么要分析算法的时间复杂度? 2、[4分]简述代码区、全局数据区、栈区、堆区
在程序运行时的作用。 3、[4分]求模式串s=’aaaabc’的next及nextval
函数。 4、[4分]证明根据森林的先序序列与中序序列
可以唯一确定一个森林。 二、综合应用题[每小题8分,共24分]:
1、[8分]推导满k叉树上的叶子结点数n0和非 叶子结点数n1之间的关系(即用k和n1表示n 0)。
下表中等待访问磁盘的序列:
请求序列
1 2 34 5 67 8
将要访问的柱面号 36 192 41 57 121 66 64 100
请按两种磁盘调度算法 SCAN 算法(也称电梯调度算法)和最短寻道时间优先调度算 法,回答以下两个问题:(1)分别给出请求序列的柱面号处理次序;(2)比较两种 算法的优缺点。
A. 4 B. 3 C. 2 D. 1
2014年山东科技大学数据结构与操作系统真题.pdf
数据结构部分一、单项选择题(每小题2分,共20分)1.下面关于线性表的叙述中,错误的是哪一个?()A.线性表采用顺序存储,必须占用一片连续的存储单元。
B.线性表采用顺序存储,便于进行插入和删除操作。
C.线性表采用链接存储,不必占用一片连续的存储单元。
D.线性表采用链接存储,便于插入和删除操作。
2.设一个链表最常用的操作是在末尾插入结点和删除尾结点,则选用( )最节省时间。
A. 单链表B.单循环链表C. 带尾指针的单循环链表D.带头结点的双循环链表3. 设栈的输入序列是 1,2,3,4,则()不可能是其出栈序列。
A. 1,2,4,3B. 2,1,3,4C. 1,4,3,2D. 4,3,1,24.循环队列 A[0..m-1]存放其元素值,用 front 和 rear 分别表示队头和队尾,则当前队列中的元素数是( )。
A. (rear-front+m)%mB.rear-front+1C.rear-front-1D.rear-front5.若一棵二叉树具有 10 个度为 2 的结点,5 个度为 1 的结点,则度为 0 的结点个数是()。
A.9 B.11 C.15 D.不确定6. 已知一棵二叉树的前序遍历结果为 ABCDEF,中序遍历结果为 CBAEDF,则后序遍历的结果为()。
A.CBEFDA B. FEDCBA C. CBEDFA D.不定7. 由权值分别为 3,8,6,2 的叶子生成一棵哈夫曼树,它的带权路径长度为()。
A.11B.35C. 19D. 538. 快速排序在最坏情况下的时间复杂度为()。
A. O(log2n)B. O(nlog2 n)C. O(n)D. O(n2)9. 下面关于二分查找的叙述正确的是( )。
A.表必须有序,表可以顺序方式存储,也可以链表方式存储B.表必须有序且表中数据必须是整型,实型或字符型C.表必须有序,而且只能从小到大排列D.表必须有序,且表只能以顺序方式存储10. 满二叉树的第 k 层上的结点个数为()。
山东科技大学数据结构与操作系统2007,2008,2010--2014年考研专业课初试真题
山东科技大学2007年招收硕士学位研究生入学考试
数据结构与操作系统试卷
数据结构部分
注意事项:
1、算法应说明基本思路,应对主要数据类型、
变量给出说明,所写算法应结构清晰、简明易懂,
应加上必要的注释。
2、算法可用(类)PASCAL语言、(类)C语言等你
所熟悉的高级语言编写,但要注明语种。
一、解答下列问题[每小题4分,共16分]:
1、[4分]为什么要分析算法的时间复杂度?
2、[4分]简述代码区、全局数据区、栈区、堆区
在程序运行时的作用。
3、[4分]求模式串s=’aaaabc’的next及nextval
函数。
4、[4分]证明根据森林的先序序列与中序序列
可以唯一确定一个森林。
二、综合应用题[每小题8分,共24分]:
1、[8分]推导满k叉树上的叶子结点数n0和非
叶子结点数n1之间的关系(即用k和n1表示n
0)。
山东科技大学操作系统期末试题资料
山东科技大学2012—2013学年第二学期《操作系统》考试试卷(A卷)班级姓名学号一、单项选择题(每小题1.5分,共30分)1. 系统出现死锁的原因是( ) ( )2. A.计算机系统发生了重大故障B.有多个封锁的进程同时存在C.若干进程因竞争资源而无休止的等待着,它方释放已占有的资源D.资源数大大少于进程数,或进程同时申请的资源数大大超过资源总数在请求页式系统中,页表中应包括()。
A.页长B.页帧号C.程序标识D.段号( )3.操作系统中采用缓冲技术,能够减少对CPU的( )的次数,从而提高资源的利用率。
A.中断B.访问C.控制D.依赖( ) 4.下面关于设备属性的论述中正确的是()A.字符设备的一个基本特性是可寻址的,即能指定输入时的源地址和输出时的目标地址;B.共享设备必须是可寻址的和可随机访问的设备;C.共享设备是指在同一时刻内,允许多个进程同时访问的设备;D.在分配共享设备和独占设备时,都可能引起死锁。
( )5.进程间的同步与互斥,分别表示了各进程间的( )A.相互独立与互相制约B.协调与竞争C.不同状态D.动态性与独立性( ) 6.碎片最严重的存储管理方式是()A.固定分区;B.可变分区;C.分页;D.分段。
( ) 7.虚拟内存的容量只受( )的限制。
A.物理内存的大小B.磁盘空间的大小C.数据存放的实际地址D.计算机地址位数( )8.系统中,“颠簸”是由( )引起的。
A.内存容量不足B.缺页率高C.交换信息量大D.缺页率反馈模型建立不正确( ) 9.在分段管理中( )A.以段为单位分配,每段是一个连续存储区B.段与段之间必定不连续C.段与段之间必定连续D.每段是等长的( ) 10.若P、V操作的信号量S值初值为3,当前值为-1,则表示有( )等待进程。
A.0个B.1个C.2个D.3个( ) 11.分页式存储管理中,地址转换工作是由()完成的。
A.硬件B.地址转换程序C.用户程序D.装入程序( ) 12.位示图的用处为( ) ( )A.主存空间的共享B.文件的保护和加密C.磁盘空间的管理D.文件目录的查找13.为防止用户使用共享文件时可能造成文件被破坏,通常可采用()方法来保护文件。
山东科技大学数据结构与操作系统2007-2008,2010--2019年考研真题
数据结构部分
一、选择题(每题2分,共20分)
1、将线性表La和Lb头尾连接,要求时间复杂度为O(1),且占用辅助空间尽量小,
应该使用哪种结构?()
A.单链表
B.单循环链表
C.带尾指针的单循环链表
D.带头结点的双循环链表
2、在一个链队列中,front和rear分别为头指针和尾指针,则插入一个结点s的操作
为()。
A.front=front->next
B.s->next=rear;rear=s
C.rear->next=s;rear=s;
D.s->next=front;front=s;
3、设一个堆栈的入栈顺序是1、2、3、
4、5。
若第一个出栈的元素是4,则最后一个
出栈的元素必定是:()
A.1
B.3
C.5
D.1或者5
4、由分别带权为9、2、
5、7的四个叶子结点构成一棵哈夫曼树,该树的带权路径长
度为:()
A.23
B.37
C.44
D.46
5、如果AVL树的深度为5(空树的深度定义为0),则此树最少有多少个结点?()
A.12
B.20
C.33
D.64。
山东科技大学2013―2014学年第一学期《操作系统》考试A卷参考答
山东科技大学2013―2014学年第一学期《操作系统》考试A卷参考答山东科技大学2022年―2022年学年第一学期《操作系统》考试试卷(A卷)参考答案及评分标准一单项选择题(每小题1.5分,共30分)1~10 CABBA AACCB 11~20 ADBAB CDCAC二、简答题(第题5分,共40分)1.答案要点:SPOOLing是Simultaneous Peripheral Operation On-Line (即外部设备联机并行操作)的缩写,它是关于慢速字符设备如何与计算机主机交换信息的一种技术,通常称为“假脱机技术”。
SPOOLing技术是在通道技术和多道程序设计基础上产生的,它由主机和相应的通道共同承担作业的输入输出工作,利用磁盘作为后援存储器,实现外围设备同时联机操作。
SPOOLing系统由专门负责I/O 的常驻内存的进程以及输入井、输出井组成;它将独占设备改造为共享设备,实现了虚拟设备功能。
评分标准:含义1分,其他每个两分2.答案要点:(1)连续更合适,因为一次写入不存在插入问题连续的数据块组织方式完全可以满足一次性写入磁盘。
同时连续文件组织方式减少了其他不必要的空间开销,而连续的组织方式顺序查找读取速度是最快的。
(2)FCB集中存储好。
目录是存在磁盘上的,所以检索目录的时候需要访问磁盘,速度很慢;集中存储是将文件控制块的一部分数据分解出去,存在另一个数据结构中,而在目录中仅留下文件的基本信息和指向该数据结构的指针,这样一来就有效地缩短减少了目录的体积,减少了目录在磁盘中的块数,于是检索目录时读取磁盘的次数也减少,于是就加快了检索目录的次数。
评分标准:若思路正确,即便有所偏差可以给一半以上分数。
3. 答案要点:进程切换的步骤如下:(l)保存处理器内容。
(2)对当前运行进程的PCB进行更新。
包括改变进程状态和其它相关信息。
(3)将这个进程的PCB移入适当的队列(就绪、因事件阻塞、就绪挂起等)。
2014年山东省数据结构最新考试试题库(完整版)
6、从一棵二叉搜索树中查找一个元素时,其时间复杂度大致为( )。
A.O(1) B.O(n)
C.O(1Ogzn) D.O(n2)
7、一个栈的入栈序列是1,2,3,4,5,则不可能的出栈序列是( )
A 顺序表 B单链表 C 双链表 D单循环链表
24、若某表最常用的操作是在最后一个结点之后插入一个结点或删除最后一个结点,则采用
D 存储方式最节省运算时间。
A.单链表 B.给出表头指针的单循环链表 C.双链表 D.带头结点的双循环链表
C.在单链表第一个元素前插入一个新元素
D.在单链表最后一个元素后插入一个新元素
33、已知关键字序列为{66,82,25,51,98,108},利用快速排序方法,以第一个元素为基准得到的一趟排序结果为
A.{25,51,66,82,98,108}
B.{25,51,66,98,82,108}
18、需要分配较大空间,插入和删除不需要移动元素的线性表,其存储结构是 B 。
A.单链表 B.静态链表 C.线性链表 D.顺序存储结构
19、n个顶点的强连通图中至少含有( )。
A.n—l条有向边 B.n条有向边
C.n(n—1)/2条有向边 D.n(n一1)条有向边
A.只有表头指针没有表尾指针的循环单链表
B.只有表尾指针没有表头指针的循环单链表
C.非循环双链表
D.循环双链表
40、已知关键字序列为{66,82,25,51,98,108},利用快速排序方法,以第一个元素为基准得到的一趟排序结果为
A.{25,51,66,82,98,108}
B.{25,51,66,98,82,108}
山东科技大学数据结构与操作系统2007-2008,2010-2018年考研初试真题
《数据结构》部分
一、简答题(30分,每题5分)
1、串、数组、广义表从元素间关系上可以看成线性结构,它们与
一般意义上的线性表相比有何特殊性?
2、借助栈可以实现更复杂的操作,请简述如何利用栈实现对表达
式中括号是否匹配的检验。
3、基于关键字比较的查找算法所能达到最优时间复杂度是?能否
设计一种与问题规模无关的查找算法?请给出基本思路。
4、图的广度优先遍历与树的何种遍历策略相似?请给出简单解释。
5、《数据结构》中经常采用“树形化组织”的方式来整理数据,
比如折半查找表、二叉排序树、大顶堆/小顶堆等,请简述这样
做的优点。
6、何为稳定的排序方法?何为不稳定的排序方法?哪些排序算法
是不稳定的?
二、综合应用题(40分,每题10分)
1、假设用于通信的电文共有8个字母A,B,C,D,E,F,G,H组成,字
母在电文中出现的频率分别是{0.2,0.04,0.06,0.02,0.12,
0.24,0.25,0.07}。
①试为这8个字符设计哈夫曼编码;
②试设计另一种由二进制表示的等长编码方案;。
山东科技大学考研专业课真题_数据结构与操作系统2014
《数据结构》部分
一、简答题(20分,每题5分)
1、什么是最优二叉树(Huffman 树)?
2、什么是哈希表?
3、什么是稳定的排序方法?
4、什么是AOE网中的关键路径?
二、应用题(45分)
1、给出使用两个栈模拟一个队列最高效的算法思想(只需使用图和必要的文字描述)。
(15分)
2、已知一个无向图如下图所示,要求用Kruskal算法生成最小树,试画出构造过程。
(10分)
3.一组关键字集合为(25,10,8,27,32,68),设哈希函数H(k)=k mod 7,分别用线性探测和链地址法作解决冲突的方法构造长度为8的哈希表,要求画出具体的哈希表并求查找成功且等概率情况下各自的平均查找长度。
(10分)
4、画出向小顶堆中加入数据4, 2, 5, 8, 3, 6, 10, 1时,每加入一个数据后堆的变化。
(10分)
三、算法设计题(25分)
答题要求:
①用自然语言说明所采用算法的思想;②给出每个算法所需的数据结构定义,并做必要说明;③用C语言写出对应的算法程序,并做必要的注释。
1、已知一个带有表头结点的单链表,结点结构为 data link ,假设该链表只给出了头指针list。
在不改变链表的前提下,请设计一个尽可能高效的算法,查找链表中倒数第k个位置上的结点。
若查找成功,算法输出该结点的data域值,并返回1;否则只返回0。
(15分)
2、设计一个算法,判断无向图G是否连通。
若连通则返回1;否则返回0。
(10分)。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数据结构部分
一、单项选择题(每小题2分,共20分)
1.下面关于线性表的叙述中,错误的是哪一个?()A.
线性表采用顺序存储,必须占用一片连续的存储单元。
B.线性表采用顺序存储,便于进行插入和删除操作。
C.线性表采用链接存储,不必占用一片连续的存储单
元。
D.线性表采用链接存储,便于插入和删除操作。
2.设一个链表最常用的操作是在末尾插入结点和删除尾结点,则选用()最节省时间。
A.单链表
B.单循环链表
C.带尾指针的单循环链表
D.带头结点的双循环链表
3.设栈的输入序列是1,2,3,4,则()不可能是其出栈序列。
A.1,2,4,3
B.2,1,3,4
C.1,4,3,2
D.4,3,1,2
4.循环队列A[0..m-1]存放其元素值,用front和rear分别表示队头和队尾,则
当前队列中的元素数是()。
A.(rear-front+m)%m
B.rear-front+1
C.rear-front-1
D.rear-front
5.若一棵二叉树具有10个度为2的结点,5个度为1的结点,则度为0的结点个数是
()。
A.9B.11C.15D.不确定
6.已知一棵二叉树的前序遍历结果为ABCDEF,中序遍历结果为CBAEDF,则后序遍历的结
果为()。
A.CBEFDA B.FEDCBA C.CBEDFA D.不定
7.由权值分别为3,8,6,2的叶子生成一棵哈夫曼树,它的带权路径长度为()。
A.11
B.35
C.19
D.53
8.快速排序在最坏情况下的时间复杂度为()。
A.O(log2n)
B.O(nlog2n)
C.O(n)
D.O(n2)
9.下面关于二分查找的叙述正确的是()。
A.表必须有序,表可以顺序方式存储,也可以链表方式存储
B.表必须有序且表中数据必须是整型,实型或字符型
C.表必须有序,而且只能从小到大排列
D.表必须有序,且表只能以顺序方式存储
10.满二叉树的第k层上的结点个数为()。
A.1
B.2k
C.2k-1
D.不确定
二、综合应用题(每题10分,共50分)
1.已知一个图的顶点集V和边集E分别为:V={1,2,3,4,5,6,7};
E={(1,2)3,(1,3)5,(1,4)8,(2,5)10,(2,3)6,(3,4)15,(3,5)12,(3,6)9, (4,6)4,(4,7)20,(5,6)18,(6,7)25};按照普里姆算法从顶点1出发生成最小生成树,试写出在最小生成树中依次得到的各条边。
2.一组关键字集合为(25,10,8,27,32,68),设哈希函数H(k)=k mod7,分别
用线性探测和链地址法作解决冲突的方法构造长度为8的哈希表。
3.已知字符A-F的出现频率依次为2,3,5,6,11,9,构造哈夫曼树并给出字符
A
和F的Huffman编码。
4.给定序列{40,55,49,73,12,27,98,81,64,36},(1)画出由该序列构建
大顶堆的过程;(2)画出一趟快速排序得到的结果。
5.从空树开始,画出按以下次序向3阶B-树中插入关键码的建树过程:20,30,50,
52,60,68,70。
如果此后删除50,68,画出每一步执行后B-树的状态。
三、算法设计题(每题10分,共20分)
答题要求:①用自然语言说明所采用算法的思想;②给出每个算法所需的数据结构定义,并做必要说明;③用C语言写出对应的算法程序,并做必要的注释。
1.已知头指针分别为la和lb的带头结点的单链表中,结点按元素值非递减有序排
列,写出将la和lb两链表归并成一个结点按元素值非递减有序排列的单链表(其头指针为lc),并计算算法的时间复杂度。
2.二叉树采用二叉链表存储:(1)编写计算整个二叉树高度的算法(二叉树的高度
也叫二叉树的深度);(2)编写计算二叉树最大宽度的算法(二叉树的最大宽度是指二叉树所有层中结点个数的最大值)。
操作系统部分
四、简单题(每小题5分,共30分)
1:操作系统设计的最重要的两个目标是什么?并简述原因。
2:进程有哪三种基本状态?发生状态间转移的原因是什么?
3:产生死锁的四个必要条件是什么?预防死锁有几种实现方法?
4:请分别给出三种不同的页面置换算法,并简要说明它们各自的优缺点。
5:在I/O通信中缓冲区是普遍使用的一种技术。
请问在I/O通信中使用缓冲区技术有何益处。
6:索引分配是外存管理中常用的分配方式。
请问,索引分配有哪三种常见的方式?这些
方式的优点和缺点是什么?
五、算法和计算题(共30分)
1:测得某个请求分页(Demand-paging)策略的计算机系统部分状态数据为:CPU利用率10%,用于对换空间的硬盘利用率97.7%,其他设备的利用率5%。
由此断定系统出现异常。
请问系统出现了何种异常现象?该异常是由于什么原因形成的?如何解决该问题?(本题8分)
2:在公交车上一般有司机和售票员各一人,他们分别负责如下的工作,
司机进程:售票员进程:
repeat repeat
启动车辆关门
正常行驶售票
到站停车开门
until...until...
在公交车行驶过程中,要求:先关门后开车;先停车后开门。
请使用信号量机制给出司机进程和售票员进程的同步工作机制。
(本题12分)3:假设一个磁盘有5000个柱面,编号为0到4999。
当前服务的柱面请求为2150,前一
个请求的柱面为1805。
当前在磁盘请求队列中等待处理的请求柱面为:
2069,1212,2296,2800,544,1618,356,1523,4965,3681;分别使用SSTF和SCAN算法,从当前服务的柱面请求位置,即2150,开始处理上述请求队列。
(本题10分)
1)请给出SSTF和SCAN算法处理上述请求队列的过程,并计算需要走过的磁道距离总和。
2)请分析SSTF和SCAN算法各自的优缺点。