自考数据结构导论
高等教育自学考试全国统一命题考试数据结构导论试卷及参考答案
20XX年(下)高等教育自学考试全国统一命题考试数据结构导论试卷及参考答案第一部分选择题一、单项选择题(本大题共l5小题,每小题2分,共30分)在每小题列出的四个备选项中只有一个是符合题目要求的。
请将其代码填写在题后的括号内。
错选、多选或未选均无分。
1.数据的基本单位是 ( )A.数据项 B.数据类型C.数据元素 D.数据变量2.下列程序的时间复杂度为 ( )3.若某线性表中最常用的操作是在最后一个元素之后插入一个元素和删除第一个元素,则最节省运算时间的存储方式是 ( )A.单链表 B.仅有头指针的单循环链表C.双链表 D.仅有尾指针的单循环链表4.从一个长度为n的顺序表中删除第i个元素(1≤i≤n)时,需向前移动的元素的个数是( )A.n—i B.n—i+1C.n—i一1 D.i5.顺序栈S中top为栈顶指针,指向栈顶元素所在的位置,elem为存放栈的数组,则元素e进栈操作的主要语句为 ( )6.循环队列sq中,用数组elem[0··25]存放数据元素,sq.front指示队头元素的前一个位置,sq.rear指示队尾元素的当前位置,设当前sq.front为20,sq.rear为12,则当前队列中的元素个数为 ( )A.8 B.16C.17 D.18A.13 B.35C.17 D.368.含有10个结点的二叉树中,度为0的结点数为4,则度为2的结点数为 ( ) A.3 B.4C.5 D.69.对一棵有100个结点的完全二叉树按层编号,则编号为49的结点,它的父结点的编号为( )A.24 B.25C.98 D.9910.可以惟一地转化成一棵一般树的二叉树的特点是 ( )A.根结点无左孩子 B.根结点无右孩子C.根结点有两个孩子 D.根结点没有孩子11.有n个结点的有向完全图的弧数是( )12.设图的邻接链表如题l2图所示,则该图的边的数目是 ( )A.4 B.5C.10 D.201 3.已知一个有序表为(13,18,24,35,47,50,62,83,90,115,134),当二分检索值为90的元素时,检索成功需比较的次数是 ( )A.1 B.2C.3 D.414.排序算法中,第一趟排序后,任一元素都不能确定其最终位置的算法是 ( ) A.选择排序 B.快速排序C.冒泡排序 D.插入排序15.排序算法中,不稳定的排序是 ( )A.直接插入排序 B.冒泡排序C.堆排序 D.归并排序第二部分非选择题二、填空题(本大题共l3小题,每小题2分,共26分)请在每小题的空格中填上正确答案。
自考02142数据结构导论考前密押120题及答案含解析
目录第一章概论 (1)第二章线性表 (7)第三章栈、队列和数组 (13)第四章树和二叉树 (17)第五章图 (22)第六章查找 (28)第七章排序 (33)第一章概论一、单选题1.数据的最小标识单位是()A.数据项B.数据类型C.数据元素D.数据变量2.任意两个结点之间都没有邻接关系,组织形式松散,这种组织形式称为()A.集合B.线性结构C.树形结构D.图结构3.与数据元素本身的形式、内容、相对位置、个数无关的是数据的()A.存储结构B.逻辑结构C.类型D.运算实现4.具有分支、层次特性,上层的结点可以和下层多个结点相邻接,但下层结点只能和上层的一个结点相邻接,这种组织形式称为()A.集合B.线性结构C.树形结构D.图结构5.数据的逻辑结构分为四种,其中结构最复杂的是()A.集合B.线性结构C.树形结构D.图结构6.“能正确地实现预定的功能,满足具体问题的需要”。
这种评价算法好坏的因素称为()A.正确性B.易读性C.健壮性D.时空性7.计算n!(整数n≥0)的递归算法是:int Factorial(int n){if(n==0)return1;else return n*Factorial(n-1);}其时间复杂度为()n)A.O(n)B.O(log2C.O(n c)D.O(n²)8.下面程序段的时间复杂度为()for(int i=0;i<n;i++)for(int j=0;j<n;j++)A[i][j]=i×j;A.O(1)B.O(n)n) D.O(n²)C.O(log29.将长度为n的单链表链接在长度为m的单链表之后的算法时间复杂度为()A.O(n)B.O(m)C.O(n+m)D.O(n×m)二、填空题10.数据结构是指一组相互之间存在一种或多种特定关系的数据的组织方式和它们在计算机内的________方式,以及定义在该组数据上的一组操作。
11.1976年瑞士计算机科学家Niklaus Wirth曾提出一个著名公式:程序=数据结构+________。
数据结构导论自考题-2_真题(含答案与解析)-交互
数据结构导论自考题-2(总分100, 做题时间90分钟)一、单项选择题在每小题列出的四个备选项中只有一个是符合题目要求的。
1.与数据元素本身的形式、内容、相对位置、个数无关的是数据的( ) A.存储结构B.存储实现C.逻辑结构D.运算实现SSS_SIMPLE_SINA B C D分值: 2答案:C2.所有的存储结点存放在一个连续的存储空间,该存储方式是( )存储方式。
A.顺序B.链式C.索引D.散列SSS_SIMPLE_SINA B C D分值: 2答案:A[解析] 本题主要考查的知识点是顺序存储方式。
[要点透析] 顺序存储方式是指所有存储结点存放在一个连续的存储区里。
利用结点在存储器中的相对位置来表示数据元素之间的逻辑关系。
3.设线性表有n个元素,以下操作中,( )在顺序表上实现比在链表上实现效率更高。
A.输出第i(1≤i≤n)个元素值B.交换第1个元素与第2个元素的值C.在第i个元素前插入一个元素D.删除第i个元素SSS_SIMPLE_SINA B C D分值: 2答案:A[解析] 本题主要考查的知识点为顺序表和链表。
[要点透析] 由于顺序表具有随机存取特性,所以和链表相比输出第i个元素时效率很高。
本题答案为A。
4.与单链表相比,双链表的优点之一是( )A.插入、删除操作更简单B.可以进行随机访问C.可以省略表头指针或表尾指针D.前后访问相邻结点更灵活SSS_SIMPLE_SINA B C D分值: 2答案:D5.循环队列的队满条件为( )A.(CQ.rear+1)%maxsize==(CQ.front+1)%maxsizeB.(CQ.rear+1)%maxsize==CQ.front+1C.(CQ.rear+1)%maxsize==CQ.frontD.CQ.rear==CQ.frontSSS_SIMPLE_SINA B C D分值: 2答案:C[解析] 本题主要考查的知识点是循环队列的队满条件。
自考 数据结构导论
2010 01一、单项选择题(本大题共15小题,每小题2分,共30分)在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。
错选、多选或未选均无分。
1.下述文件中适合于磁带存储的是()A.顺序文件B.索引文件C.散列文件D.多关键字文件2.某二叉树的后根遍历序列为dabec,中根遍历序列为debac,则先根遍历序列为()A.acbedB.becabC.deabcD.cedba3.含有n个结点的二叉树用二叉链表表示时,空指针域个数为( )A.n-1B.nC.n+1D.n+24.在一个图中,所有顶点的度数之和与图的边数的比是( )A.1∶2B.1∶1C.2∶1D.4∶15.长度为n的链队列用单循环链表表示,若只设头指针,则出队操作的时间复杂度为( )A.O(1)B.O(1og2n)C.O(n)D.O(n2)6.下述几种排序方法中,要求内存量最大的是( )A.插入排序B.快速排序C.归并排序D.选择排序7.对n个不同值进行冒泡排序,在元素无序的情况下比较的次数为( )A.n-1B.nC.n+1D.n(n-1)/28.对线性表进行二分查找时,要求线性表必须( )A.以顺序方式存储B.以链式方式存储C.以顺序方式存储,且结点按关键字有序排列D.以链接方式存储,且结点按关键字有序排列9.在表长为n的顺序表上做删除运算,其平均时间复杂度为( )A.O(1)B.O(n)C.O(nlog2n)D.O(n2)10.当利用大小为n的数组顺序存储一个队列时,该队列的最大容量为( )A.n-2B.n-1C.nD.n+111.有关插入排序的叙述,错误的...是( )A.插入排序在最坏情况下需要O(n2)时间B.插入排序在最佳情况可在O(n)时间内完成C.插入排序平均需要O(nlog2n)时间D.插入排序的空间复杂度为O(1)12.有关树的叙述正确的是( )A.每一个内部结点至少有一个兄弟B.每一个叶结点均有父结点C.有的树没有子树D.每个树至少有一个根结点与一个叶结点。
[自学考试密押题库与答案解析]数据结构导论自考题模拟3
问题:13. 在对一组记录关键字(54,38,96,23,15,72,60,45,83)进行冒泡排序时,整个冒泡排序过程中需进行______趟才能完成。
答案:5
三、应用题
问题:1. 设有一顺序队列sq,容量为5,初始状态时sq.front=sq.rear=0,画出做完下列操作后队列及其头尾指针的状态变化情况,若不能入队,请简述其理由后停止。
int high)
{int mid=(low+high)/2;
if(R.elem[mid].key==k) return mid;
else if(R.elem[mid].key>k)
return binsearch 2(R, K, low, mid-1);
else return binsearch_2(R, K, mid+1; high);
答案:C
问题:2. 下面关于线性表的叙述,错误的是
A.顺序表是使用一维数组实现的线性表
B.顺序表必须占用一片连续的存储单元
C.顺序表的空间利用率高于链表
D.在链表中,每个结点只有一个链域
答案:D[解析] 本题主要考查的知识点是线性表。
[要点透析] 顺序表是用一维数组实现的线性表,数组的下标可看成元素的相对地址,它们是逻辑上相邻的元素,存储在物理位置也相邻的单元中。在链表中,单链表中每个结点只有一个链域,而双链表中的结点有prior和next两个链域。
第三趟:
[11 12 13 14 15 16 17]
四、算法设计题
问题:1. 试编写算法判断两棵二叉树是否等价。若二叉树T1和T2等价,则T1和T2都是空的二叉树,或T1和T2的根结点的值相同,并且T1的左子树与T2的左子树是等价的,T1的右子树与T2的右子树是等价的。
数据结构导论-自学考试-概念整理
第一章概论第二章线性表第三章栈和队列第四章串第五章多维数组第六章树第七章图第八章排序第九章查找第一章概论1.数据:信息的载体,能被计算机识别、存储和加工处理。
2.数据元素:数据的基本单位,可由若干个数据项组成,数据项是具有独立含义的最小标识单位。
3.数据结构:数据之间的相互关系,即数据的组织形式。
它包括:1)数据的逻辑结构,从逻辑关系上描述数据,与数据存储无关,独立于计算机;2)数据的存储结构,是逻辑结构用计算机语言的实现,依赖于计算机语言。
3)数据的运算,定义在逻辑结构上,每种逻辑结构都有一个运算集合。
常用的运算:检索/插入/删除/更新/排序。
4.数据的逻辑结构可以看作是从具体问题抽象出来的数学模型。
数据的存储结构是逻辑结构用计算机语言的实现。
5.数据类型:一个值的集合及在值上定义的一组操作的总称。
分为:原子类型和结构类型。
6.抽象数据类型:抽象数据的组织和与之相关的操作。
优点:将数据和操作封装在一起实现了信息隐藏。
7. 抽象数据类型ADT:是在概念层上描述问题;类:是在实现层上描述问题;在应用层上操作对象(类的实例)解决问题。
8.数据的逻辑结构,简称为数据结构,有:(1)线性结构,若结构是非空集则仅有一个开始和终端结点,并且所有结点最多只有一个直接前趋和后继。
(2)非线性结构,一个结点可能有多个直接前趋和后继。
9.数据的存储结构有:1)顺序存储,把逻辑相邻的结点存储在物理上相邻的存储单元内。
2)链接存储,结点间的逻辑关系由附加指针字段表示。
3)索引存储,存储结点信息的同时,建立附加索引表,有稠密索引和稀疏索引。
4)散列存储,按结点的关键字直接计算出存储地址。
10.评价算法的质量:1正确性;算法应能正确地事先预定的功能。
2易读性;算法应易于阅读和理解,以便于调试和扩充。
3健壮性;当环境发生变化时,算法能适当地做出反应或进行处理,不会产生不需要的运行结果。
4高效率;即达到所需的时间和空间性能。
11.算法的时间复杂度T(n):是该算法的时间耗费,是求解问题规模n的函数。
自考数据结构导论___第一章_概论
例如: a _ry test31 string_1
判断哪些是合法的标识符: C x1 1x x+y sum_5
$x_8 *Z3
sum-5 count _z3
不能以数字开头 不能包含除下划线外的运算符和其他符号 大小写区分
32
C语言概述
4、关键字
C语言中由系统特殊定义的32个具有特定含义
的标识符,不能作为用户自定义对象的名字。
8
应用举例1——学籍档案管理
9
数据特点:
❖ 每个学生的信息占据一行,所有学生的信息按学号顺 序依次排列构成一张表格;
❖ 表中每个学生的信息依据学号的大小存在着一种前后 关系,这就是我们所说的线性结构;
对它的操作通常是:在学生档案中查找出某人的档案, 读取某个学生的信息,插入某个学生的信息,删除某 个学生的信息,更新某个学生的信息等等。
大家好
1
数据结构导论
主讲:赖益强
2
概述
《数据结构导论》是计算机科学与技术专业的一门必修课 程。本课程介绍如何组织各种数据在计算机中的存储、传递和 转换。
内容包括:线性表、栈、队列、数组、树、二叉树、图等基 本数据结构及其应用;排序和查找的原理与方法;数据在外存 上的组织方法。
3
第1章 概论
1.1引言 1.2基本概念和术语 1.3算法及描述 1.4算法分析
}
运行结果是在屏幕上显示: This is a C program.
思考: \n的作用是什么?
C程序由函数组成 对于一个C程序,至少有一 个main函数,称为主函数 ,main是C语言中主函数的 专用名,是程序执行的起 点和终点。
40
第 40 页
C语言概述
2023年自考专业计算机信息管理数据结构导论命题趋势权威预测试卷1
自考专业(计算机信息管理)数据结构导论命题趋势权威预测试卷1一、单项选择题1、对有n个数据元素的挨次表做挨次查找时,若查找每个元素的概率相同,则平均查找长度为_____________。
A.(n一1)/2B.n/2C.(n+1)/2D.n2、对长度为4的挨次表进行查找,若查找第一个元素的概率为1/24,其次个元素的概率为1/6,第三个元素的概率为2/3,第四个元素的概率为1/8,则查找任一个元素的平均查找长度为_______。
A.23/8B.20/8C.17/8D.14/83、下面有关折半查找的叙述中,正确的是_______。
A.数据元素必需有序排列,可以采纳挨次存储,也可以采纳链式存储B.数据元素必需有序排列,且必需采纳挨次存储C.数据元素必需有序排列,而且只能从大到小排列D.数据元素可以有序排列,也可以无序排列4、对有14个数据元素的有序表a[14]进行折半查找,搜寻到a[5]的关键字等于给定值,此时元素比较挨次依次为________。
A.a[8],a[5],a[6],a[7]B.a[1],a[8],a[7],a[6]C.a[6],a[4],a[8],a[5]D.a[6],a[2],a[4],a[5]5、5.有一个长度为12的有序表,按折半查找法对该表进行查找,在表内各元素等概率状况下查找胜利时所需平均比较次数为_______。
A.35/12B.37/12C.39/12D.12/436、当采纳分块查找时,数据的组织方式为______。
A.数据必需有序B.数据不必有序C.数据分成若干块,每块内数据不必有序,但块问必需有序D.数据分成若干块,每块内数据必需有序,但块间不必有序7、下面关于哈希表的说法中,正确的是_______。
A.不管采纳何种处理冲突方法,都可直接删除元素B.哈希表不需比较关键字即可查找到元素C.哈希函数构造的越简单,冲突就越小D.哈希函数在关键字与哈希地址之间建立映像8、8.哈希表的地址区间为0~17,哈希函数为h(key)=Kmod17。
全国自学考试数据结构导论试题及答案4套
全国自学考试数据结构导论试题及答案4套第一套试题一、选择题(每题4分,共40分)1. 下列哪个数据结构是一种非线性结构?A. 数组B. 栈C. 队列D. 树2. 下列哪种算法不适用于解决排序问题?A. 冒泡排序B. 快速排序C. 深度优先搜索D. 归并排序3. 在数据结构中,堆的底层实现通常采用哪种数据结构?A. 数组B. 栈C. 链表D. 队列4. 下列哪个选项是描述图结构的准确说法?A. 图结构是一种线性结构B. 图结构由节点和指向节点的边构成C. 图结构不能存储数据D. 图结构不支持插入和删除操作5. 下列哪个排序算法具有最坏时间复杂度为O(nlogn)?A. 冒泡排序B. 插入排序C. 选择排序D. 希尔排序二、填空题(每题4分,共40分)1. 在二叉树中,每个节点最多有____个子节点。
2. 图的两个顶点之间的路径长度是指连接这两个顶点所需的____数。
3. 链表是一种____结构。
4. 快速排序算法的核心思想是____。
5. 栈和队列都属于线性结构,其主要区别在于____操作的限制。
三、简答题(每题10分,共30分)1. 请简要描述栈的特点以及栈的应用场景。
2. 请简要介绍图的基本概念,并说明图的应用领域。
3. 请解释递归算法的原理,并给出一个使用递归算法解决问题的例子。
四、编程题(共30分)请使用任意编程语言实现一个简单的栈数据结构,并编写测试代码进行验证。
第二套试题一、选择题(每题4分,共40分)1. 在二叉搜索树中,中序遍历的结果是____。
A. 升序排列B. 降序排列C. 随机排序D. 不确定的排序2. 在哈希表结构中,解决冲突问题的常用方法是____。
A. 线性探测B. 链地址法C. 开放地址法D. 扩容法3. AVL树是一种____。
A. 二叉搜索树B. 哈希表C. B树D. 红黑树4. 以下哪个算法不是用于解决查找问题?A. 二分查找B. 深度优先搜索C. 广度优先搜索D. 哈希查找5. 以下哪个数据结构不支持随机访问元素?A. 数组B. 栈C. 链表D. 哈希表二、填空题(每题4分,共40分)1. 在二叉树中,每个节点最多有____个子节点。
数据结构导论自考试题及答案
数据结构导论自考试题及答案一、选择题(每题2分,共10分)1. 在数据结构中,队列是一种()。
A. 集合B. 线性表C. 树D. 图答案:B2. 对于长度为n的线性表,在最坏情况下,查找一个元素需要比较的次数是()。
A. nB. n/2C. 1D. 0答案:A3. 在二叉树的遍历中,先序遍历的顺序是()。
A. 根-左-右B. 左-根-右C. 右-根-左D. 根-右-左答案:A4. 哈希表的冲突可以通过()来解决。
A. 链接法B. 排序C. 折半查找D. 二分查找答案:A5. 一个具有n个顶点的无向图至少有多少条边?A. nB. n-1C. n(n-1)/2D. 0答案:D二、填空题(每题3分,共15分)6. 在顺序存储的堆栈中,判断栈为空的条件是______。
答案:栈顶指针等于-1或者指向第一个元素的前一个位置7. 快速排序的平均时间复杂度是______。
答案:O(n log n)8. 一个长度为n的链表,删除已知第i个位置元素的时间复杂度是______。
答案:O(n)9. 一个平衡二叉树的查找、插入和删除操作的时间复杂度是______。
答案:O(log n)10. 用邻接表表示图时,对于有n个顶点的无向图,邻接表中所有链表的节点数之和至少是______。
答案:n三、简答题(每题10分,共20分)11. 什么是递归?请举例说明递归算法的工作原理。
答案:递归是一种在程序中调用自身的方法,它允许函数解决问题的更小版本,直到达到一个简单的基本情况。
例如,计算n的阶乘可以使用递归算法:```function factorial(n) {if (n <= 1) {return 1;} else {return n * factorial(n - 1);}}```12. 请简述图的遍历算法有哪些,并说明它们的特点。
答案:图的遍历算法主要有深度优先搜索(DFS)和广度优先搜索(BFS)。
DFS使用栈(可以是显式的栈或者隐式的递归调用栈)来逐层深入地访问图中的顶点,直到找到一个未被访问的邻接顶点。
0214年自考专业(计算机信息管理)数据结构导论考试真题及答案
0214年自考专业(计算机信息管理)数据结构导论考试真题及答案一、单项选择题每题的四个选项中只有一个答案是正确的,请将正确的选项选择出来。
1、设有一个10阶的下三角矩阵A(包括对角线),根据从上到下,从左到右的挨次存储到连续的55个存储单元中,每个数组元素占1个字节的存储空间,则a[5][4]地址与a[0][0]的地址之差为()。
A.10B.19C.28D.552、设某棵二叉树中只有度数为0和度数为2的结点且度数为0的结点数为n,则这棵二叉树中共有结点个数是()。
A.2nB.n+1C.2n-1D.2n+13、设根据从上到下、从左到右的挨次从1开头对完全二叉树进行挨次编号,若结点i有左孩子,则编号为i结点的左孩子结点的编号为()。
A.2i+1B.2iC.i/2D.2i-14、已知一棵二叉树的先序遍历结果为ABCDEF,中序遍历结果为CBAEDF,则后序遍历的结果为()。
A.CBEFDAB.FEDCBAC.CBEDFAD.CEFBDA5、A.n-1B.n2C.n(n+1)/2D.n(n-1)/26、设某有向图中有n个顶点,则该有向图对应的邻接表中表头结点个数为()。
A.n-1B.nC.n+1D.2n-17、若查找每个记录的概率均等,则在具有n个记录的连续挨次文件中采纳挨次查找算法查找一个记录,其平均查找长度ASL为()。
A.(n-1)/2B.n/2C.(n+1)/2D.n8、设散列表中有n个存储单元,散列函数H(key)=key%p,则p最好选择小于散列表长度n的()。
A.奇数B.素数C.偶数D.合数9、下列排序算法中,稳定的排序算法是A.堆排序B.快速排序C.直接选择排序D.冒泡排序10、下列四个序列中,是堆的序列为A.75,45,65,30,15,25,20,10B.75,65,45,10,30,25,20,15C.75,65,30,15,25,45,20,10D.75,45,65,10,25,30,20,1511、数据的最小标识单位是A.数据项B.数据类型C.数据元素D.数据变量12、下面程序段的时间简单度为()。
数据结构导论自考全书重点综合复习
6.线性表基本运算上的应用和算法设计
7.顺序表和链表的比较 8.串的概念和基本操作
12
1,线性表的基本概念 2,线性表的基本运算 起始结点、终端结点、前驱、后继、直接前驱、 直接后继、线性表长度、空表 初始化、求表长、读表元、定位、插入、删除
13
经典题例
3. 在单链表中,存储每个结点需要有两个域,一 个是数据域,另一个是指针域,指针域指向该结 点的() A.直接前趋 B.直接后继 C.开始结点 D.终端结点 18.线性表中所含结点的个数称为______。
35
经典题例
7.关于串的叙述中,正确的是( ) A.空串是只含有零个字符的串 B.空串是只含有空格字符的串 C.空串是含有零个字符或含有空格字符的串 D.串是含有一个或多个字符的有穷序列 19.串是一种特殊的线性表,串常见的存储结构有顺 序存储和________________两种方式。
36
第三章栈、队列、数组
17.通常从哪4个方面评价算法(包括程序)的质量。
6
经典题例
16.下列程序段的时间复杂度为____________。 for(i=1;i<=n;i++) for(j=1;j<=n;j++) for(k=1;k<=n;k++) s=为________。 i=0;s=0; while(i<n){ i++;s=s+i;}
33
8,串
串的概念、空串、串长度、串相等、子串、主串
串操作: 赋值、判等、求长度、连接、求子串、 插入、删除、替换、定位
串存储: 顺序串:顺序串的紧缩格式、非紧缩格式 链串 :
34
经典题例
14.关于串的的叙述,不正确的是( ) A.串是字符的有限序列 B.空串是由空格构成的串 C.替换是串的一种重要运算 D.串既可以采用顺序存储,也可以采用链式存储 24.两个串是相等的,当且仅当两个串的长度相等且 ________的字符都相同
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
全国2014年4月高等教育自学考试
数据结构导论试题
课程代码:02142
请考生按规定用笔将所有试题的答案涂、写在答题纸上。
选择题部分
注意事项:
1.答题前,考生务必将自己的考试课程名称、姓名、准考证号用黑色字迹的签字笔或钢笔填写在答题纸规定的位置上。
2.每小题选出答案后,用2B铅笔把答题纸上对应题目的答案标号涂黑。
如需改动,用橡皮擦干净后,再选涂其他答案标号。
不能答在试题卷上。
一、单项选择题(本大题共15小题,每小题2分,共30分)
在每小题列出的四个备选项中只有一个是符合题目要求的,请将其选出并将“答题纸”的相应代码涂黑。
错涂、多涂或未涂均无分。
1.下列几种算法时间复杂度中,最小的是( A )
A.O(log2n)
B.O(n)
C.O(n2)
D.O(1)
2.数据的存储方式中除了顺序存储方式和链式存储方式之外,还有( D )
A.索引存储方式和树形存储方式
B.线性存储方式和散列存储方式
C.线性存储方式和索引存储方式
D.索引存储方式和散列存储方式
3.表长为n的顺序表中做删除运算的平均时间复杂度为( C )
A.O(1)
B.O(log2n)
C.O(n)
D.O(n2)
4.顺序表中定位算法(查找值为x的结点序号最小值)的平均时间复杂度为( C )
A.O(1)
B.O(log2n)
C.O(n)
D.O(n2)
5.元素的进栈次序为A,B,C,D,E,出栈的第一个元素为E,则第四个出栈的元素为( C )
A.D
B.C
C.B
D.A
6.带头结点的链队列中,队列头和队列尾指针分别为front和rear,则判断队列空的条件为( A )
A.front==rear
B.front!=NULL
C.rear!==NULL
D.front==NULL
7.深度为5的二叉树,结点个数最多为( A )
A.31个
B.32个
C.63个
D.64个
8.如果结点A有2个兄弟结点,结点B为A的双亲,则B的度为( B )
A.1
B.3
C.4
D.5
9.将题9图所示的一棵树转换为二叉树,结点C是( D )
A.A的左孩子
B.A的右孩子
C.B的右孩子
D.E的右孩子
10.n为图的顶点个数,e为图中弧的数目,则图的拓扑排序算法的时间复杂度为( D )
A.O(n)
B.O(e)
C.O(n-e)
D.O(n+e)
11.无向图的邻接矩阵是( D )
A.对角矩阵
B.稀疏矩阵
C.上三角矩阵
D.对称矩阵
12.在具有101个元素的顺序表中查找值为x的元素结点时,平均比较元素的次数为( A )
A.50
B.51
C.100
D.101
13.构造散列函数的方法很多,常用的构造方法有( D )
A.数字分析法、除留余数法、平方取中法
B.线性探测法、二次探测法、除留余数法
C.线性探测法、除留余数法、链地址法
D.线性探测法、二次探测法、链地址法
14.就平均时间性能而言,快速排序方法最佳,其时间复杂度为( B )
A.O(n)
B.O(nlog2n)
C.O(n2)
D.O(1og2n)
15.下述算法中,不稳定的排序算法是( C )
A.直接插入排序
B.冒泡排序
C.堆排序
D.归并排序
非选择题部分
注意事项:
用黑色字迹的签字笔或钢笔将答案写在答题纸上,不能答在试题卷上。
二、填空题(本大题共13小题,每小题2分,共26分)
16.数据的基本单位是___数据项____。
17.双向循环链表中,在p所指结点的后面插入一个新结点*t,需要修改四个指针,分别为
t->prior=P;t->next=p->next;___p->next->prior=t____;p->next=t;。
18.在带有头结点的循环链表中,尾指针为rear,判断指针P所指结点为首结点的条件是__P==rear->next->next___。
19.若线性表中最常用的操作是求表长和读表元素,则顺序表和链表这两种存储方式中,较节省时间的是__顺序表。
20.不含任何数据元素的栈称为___空栈______。
21.稀疏矩阵一般采用的压缩存储方法是___三元组______。
22.100个结点的二叉树采用二叉链表存储时,用来指向左、右孩子结点的指针域有___N-1______个。
23.已知完全二叉树的第5层有5个结点,则整个完全二叉树有____20_____个结点。
24.n个顶点的有向图G用邻接矩阵A[1..n,1..n]存储,其第i列的所有元素之和等于顶点
V i的_____入度__。
25.具有10个顶点的有向完全图的弧数为____90___。
26.要完全避免散列所产生的“堆积’’现象,通常采用__公共溢出区_解决冲突。
27.在长度为n的带有岗哨的顺序表中进行顺序查找,查找不成功时,与关键字的比较次数为___N+1___。
28.归并排序算法的时间复杂度是____O(NLOG2N) 。
三、应用题(本大题共5小题,每小题6分,共30分)
29.稀疏矩阵A如题29图所示,写出该稀疏矩阵A的三元组表示法。
30.设二叉树的中序遍历序列为BDCEAFHG,后序遍历序列为DECBHGFA,试画出该二叉树。
31.写出题31图所示无向图的邻接矩阵,并写出每个顶点的度。
题31图
32.已知散列表的地址空间为0至13,散列函数H(k)=kmod11,(mod为求余运算),待散列序列为(26,61,38,84,49),用二次探测法解决冲突,构造该序列的散列表,要求写出处理冲突的过程。
33.将一组键值(80,50,65,13,86,35,96,57,39,79,59,15)应用二路归并排序算法从小到大排序,试写出
各趟的结果。
四、算法设计题(本大题共2小题,每小题7分,共14分)
34.设单链表及链栈S的结构定义如下:
typedef struct node
{ Data Type data;
struct node*next;
}linkstack;
编写一个算法void ReverseList(1inkstack *head),借助于栈S将带头结点单链表head中序号为奇数的结点逆置,序号为偶数的结点保持不变。
(例如:单链表的逻辑结构为(a1,a2,a3,a4,a5,a6),逆置后变为(a5,a2,a3,a4,a1,a6))。
说明:栈的初始化运算用InitStack(S);进栈运算用Push(S,x);判栈空运算用EmptyStack(S);出栈运算用Pop(S);取栈顶元素运算用Gettop(S)。
void ReverseList(linkstack*head)
{
InitStack(S);
linkstack *p=head,*q=head;
int i=0;
DataType x;
while(p->next!=NULL)
{
i++;
if(i%2!=0) Push(S,p->next->data);
p=p->next;
}
while(q->next!=NULL)
{
i++;
if(i%2!=0)
if(!EmptyStack(S))
{
x=Gettop(S);
q->next->data=x;
Pop(S);
}
}
}
35.以二叉链表作为存储结构,试编写递归算法实现求二叉树中叶子结点个数。
Int count_BT( BT t)
{
Static int count=0’
If (t!=NULL)
if((t->lchild==NULL)&&(t->rchild==NULL)) count++;
Else {
Count_BT(t->lchild);
Count_BT(t->rchild);
}
Return count;
}。