2018年西南石油大学理学院925数据结构考研核心题库
● 摘要
一、填空题
1. 在n 个顶点的非空无向图中,最多有_____个连通分量。
【答案】n
【解析】当n 个顶点之间没有边,都是孤立的顶点时,有n 个连通分量。
2. 设有一个空枝,栈顶指针为1000H(十六进制) ,现有输入序列为1,2,3,4,5,经过PUSH ,PUSH ,POP ,PUSH ,POP ,PUSH ,PUSH 之后,输出序列是_____,而栈顶指针值是_____。设栈为顺序找,每个元素占4个字节。
【答案】23;100CH
3. 中缀式
运算结果为_____。 【答案】
【解析】中缀式相当于中序遍历,前缀式相当于前序遍历,后缀式相当于后序遍历。
4. 在基于关键字比较且时间为_ 的排序中,若要求排序是稳定的,则可选用_____排序;若要求就地排序(及辅助空间为O(1)),则可选用_____排序。
【答案】归并;堆
5. 求最短路径的Dijkstra 算法的时间复杂度为_____。 【答案】
6. 关键码序列(Q,H ,C ,Y ,Q ,A ,M ,S ,R ,D ,F ,X) ,要按照关键码值递增的次序进行排序,若采用初始步长为4的希尔排序法,则一趟扫描的结果是_____; 若采用以第一个元素为分界元素的快速排序法,则扫描一趟的结果是_____。
【答案】(Q,A ,C ,S ,Q ,D ,F ,X ,R ,H ,M ,Y) ; (F,H ,C ,D ,a ,A ,M ,Q ,R ,S ,Y ,X)
【解析】希尔排序的基本思想是:先将整个待排记录序列分割成为若干子序列分别进行直接插入排序,待整个序列中的记录“基本有序”时,再对全体记录进行一次直接插入排序。
快速排序(quick sort) 的基本思想是,通过一趟排序将待排记录分割成独立的两部分,其中一部分记录的关键字均比另一部分记录的关键字小,则可分别对这两部分记录继续进行排序,以达到整个序列有序。
(c-d)对应的前缀式为_____,若a=l,b=2, c=3, d=4, 则后缀式的
7. 顺序存储结构是通过_____表示元素之间的关系的;链式存储结构是通过_____表示元素之间的关系的。
【答案】物理上相邻;指针
【解析】顺序存储结构是通过物理位置表示元素之间的关系的,链式存储结构通过指针表示元素之间的关系。
8. 文件可按其记录的类型不同而分成两类,即 _____和_____文件。
【答案】操作系统文件;数据库
9. 设数组
址为_____。
【答案】9174;8788
【解析】设一个元素的行标为i ,列标为j 。若以行序为主存储顺序,则它的存储地址为2000+((i﹣l)*80+j ﹣
1) 2。若以列序为主存储顺序,则它的存储地址为2000+((j﹣l)*50+i ﹣l)*2。
10.对n 个元素的序列进行起泡排序时,最少的比较次数是_____。
【答案】n -1
【解析】如果序列是正序,冒泡排序第一次只要进行n -1次比较,发现没有移动元素,说明序列有序。
的基地址为2000,每个元素占2个存储单元,若以行序为主序顺序存储,则元素a[45,68]的存储地址为_____;若以列序为主序顺序存储,则元素a[45,68]的存储地
二、判断题
11.两分法插入排序所需比较次数与待排序记录的初始排列状态相关。( )
【答案】×
【解析】折半插入排序所需的附加存储空间和直接插入排序相同,从时间上比较,折半插入排序仅减少了关 键字间的比较次数,而记录的移动次数不变。因此,折半插入排序的时间复杂度,与待排序记录的初始排列状态无关。 仍为
12.顺序存储结构的主要缺点是不利于插入或删除操作。( )
【答案】 √
【解析】因为顺序表的插入删除会移动大量的元素。
13.3阶的B-树是平衡的3路搜索树。反之,一棵平衡的3路搜索树是3阶B-树。( )
【答案】×
【解析】3路搜索树并不具有3阶B-树的性质。因此一棵平衡的3路搜索树不一定是3阶B-树。
14.基数分类只适用于以数字为关键字的情况,不适用于以字符串为关键字的情况。( )
【答案】×
【解析】如果用字符串为关键字,可以将其中的字符串的每一位用Ascn 码进行比较。
15.即使有向无环图的拓扑序列唯一,也不能唯一确定该图。( )
【答案】×
【解析】如果有向无环图的拓扑序列唯一,则能够确定每个结点的唯一前驱和后继,因此能够确定该图。
16.为了很方便的插入和删除数据,可以使用双向链表存放数据。( )
【答案】 √
【解析】链式存储结构便于数据的插入和删除,但只能顺序访问表中的元素。
17.无环有向图才能进行拓扑排序。( )
【答案】√
【解析】在图论中,由一个有向无环图的顶点组成的序列,才能进行拓扑排序。
18.串长度是指串中不同字符的个数。( )
【答案】 ×
【解析】不是,串长度是指串中字符的总个数。需要注意的是,在计算字符串的长度时,不要漏掉了空格。
19.外部排序是把外存文件调入内存,可利用内部排序的方法进行排序,因此排序所花的时间取决于内部排序的时间。( )
【答案】×
【解析】外部排序方法:按可用内存大小,将外存上含n 个记录的文件分成若干长度为2的子文件或段,依次读入内存并利用有效的内部排序方法对它们进行排序,并将排序后得到的有序子文件重新写入外存,通常称这些有序子文件为归并段或顺串(run)。对这些归并段进行逐趟归并,使归并段(有序的子文件) 逐渐由小至大,直至得到整个有序文件为止。一般情况下,外部排序所需总的时间=内部排序(产生初始归并段) 所需的时间m*tIS+外存信息读写的时间
需的时间。
20.通常使用队列来处理函数或过程的调用。( )
【答案】 ×
【解析】经常使用栈来处理函数或过程的调用。
内部归并所三、算法设计题