1月全国自学考试数据结构试题及答案解析
全国自学考试数据结构试题02331试题及答案

全国2011年1月自学考试数据结构试题课程代码:02331一、单项选择题(本大题共15小题,每小题2分,共30分)在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。
错选、多选或未选均无分。
1.下列选项中与数据存储结构无关的术语是( D )P3A.顺序表B.链表C.链队列D.栈2.将两个各有n个元素的有序表归并成一个有序表,最少的比较次数是( B )A.n-1B.nC.2n-1D.2n3.已知循环队列的存储空间大小为m,队头指针front指向队头元素,队尾指针rear指向队尾元素的下一个位置,则向队列中插入新元素时,修改指针的操作是( D )A.rear=(rear-1)%m;B.front=(front+1)%m;C.front=(front-1)%m;D.rear=(rear+1)%m;4.递归实现或函数调用时,处理参数及返回地址,应采用的数据结构是( A )A.堆栈B.多维数组C.队列D.线性表5.设有两个串p和q,其中q是p的子串,则求q在p中首次出现位置的算法称为( C )A.求子串B.串联接C.串匹配D.求串长6.对于广义表A,若head(A)等于tail(A),则表A为( B )P67A.( )B.(( ))C.(( ),( ))D.(( ),( ),( ))7.若一棵具有n(n>0)个结点的二叉树的先序序列与后序序列正好相反,则该二叉树一定是( C )A.结点均无左孩子的二叉树B.结点均无右孩子的二叉树C.高度为n的二叉树D.存在度为2的结点的二叉树8.若一棵二叉树中度为l的结点个数是3,度为2的结点个数是4,则该二叉树叶子结点的个数是( B )P73A.4B.5C.7D.89.下列叙述中错误的是( C )A.图的遍历是从给定的源点出发对每一个顶点访问且仅访问一次P107B.图的遍历可以采用深度优先遍历和广度优先遍历第 1 页C.图的广度优先遍历只适用于无向图D.图的深度优先遍历是一个递归过程10.已知有向图G=(V,E),其中V={V1,V2,V3,V4},E={<V1,V2>,<V1,V3>,<V2,V3>,<V2,V4>,<V3,V4>},图G的拓扑序列是()A.V1,V2,V3,V4B.V1,V3,V2,V4C.V1,V3,V4,V2D.V1,V2,V4,V311.平均时间复杂度为O(n log n)的稳定排序算法是( C )P136 P164 8-2A.快速排序B.堆排序C.归并排序D.冒泡排序12.已知关键字序列为(51,22,83,46,75,18,68,30),对其进行快速排序,第一趟划分完成后的关键字序列是( D )A.(18,22,30,46,51,68,75,83)B.(30,18,22,46,51,75,83,68)C.(46,30,22,18,51,75,68,83)D.(30,22,18,46,51,75,68,83)13.某索引顺序表共有元素395个,平均分成5块。
最新1月自学考试数据结构试题及答案解析

2018年1月自学考试数据结构试题课程代码:02331一、单项选择题(本大题共15小题,每小题2分,共30分)在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。
错选、多选或未选均无分。
1.下列程序段的时间复杂度为( )s=0;for(i=1;i<n;i++)for(j=1;j<n;j++)s+=i*j;A.O(1)B.O(n)C.O(2n)D.O(n2)2.假设某个带头结点的单链表的头指针为head,则判定该表为空表的条件是( )A.head==NULL;B.head->next==NULL;C.head!=NULL;D.head->next==head;3.栈是一种操作受限的线性结构,其操作的主要特征是( )A.先进先出B.后进先出C.进优于出D.出优于进4.假设以数组A[n]存放循环队列的元素,其头、尾指针分别为front和rear。
若设定尾指针指向队列中的队尾元素,头指针指向队列中队头元素的前一个位置,则当前存于队列中的元素个数为( ) A.(rear-front-1)%n B.(rear-front)%nC.(front-rear+1)%nD.(rear-front+n)%n5.判断两个串大小的基本准则是( )A.两个串长度的大小B.两个串中首字符的大小C.两个串中大写字母的多少D.对应的第一个不等字符的大小6.二维数组A[4][5]按行优先顺序存储,若每个元素占2个存储单元,且第一个元素A[0][0]的存储地1址为1000,则数组元素A[3][2]的存储地址为( )A.1012B.1017C.1034D.10367.高度为5的完全二叉树中含有的结点数至少为( )A.16B.17C.31D.328.已知在一棵度为3的树中,度为2的结点数为4,度为3的结点数为3,则该树中的叶子结点数为( )A.5B.8C.11D.18)9.下列所示各图中是中序线索化二叉树的是(A.(v0,v1,v2,v5,v4,v3)B.(v0,v1,v2,v3,v4,v5)C.(v0,v1,v5,v2,v3,v4)D.(v0,v1,v4,v5,v2,v3)11.如图所示有向图的一个拓扑序列是( )A.ABCDEFB.FCBEADC.FEDCBAD.DAEBCF12.下列关键字序列中,构成大根堆的是( )23A.5,8,1,3,9,6,2,7B.9,8,1,7,5,6,2,33C.9,8,6,3,5,l ,2,7D.9,8,6,7,5,1,2,313.对长度为15的有序顺序表进行二分查找,在各记录的查找概率均相等的情况下,查找成功时所需进行的关键字比较次数的平均值为( ) A.1539B.1549C.1551D.155514.已知一个散列表如图所示,其散列函数为H(key)=key %11,采用二次探查法处理冲突,则下一个插入的关键字49的地址为( )15.数据库文件是由大量带有结构的( )A.记录组成的集合B.字符组成的集合C.数据项组成的集合D.数据结构组成的集合二、填空题(本大题共10小题,每小题2分,共20分)请在每小题的空格中填上正确答案。
1月全国数据库原理自考试题及答案解析

1全国2019年1月高等教育自学考试数据库原理试题课程代码:02336一、单项选择题(本大题共15小题,每小题2分,共30分)在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。
错选、多选或未选均无分。
1.模式的逻辑子集通常称为( )A .存储模式B .内模式C .外模式D .模式2.ER 模型中的“实体标识符”术语对应于机器世界中的术语是( )A .记录B .字段C .文件D .关键码3.在基本层次联系中,父记录型与子记录型之间的联系是( )A .一对一联系B .一对多联系C .多对多联系D .多对一联系4.已知两个关系如下:假设R 的主键是A ,S 的主键是D ,在关系S 的定义中包含外键子句:“FOREIGN KEY (A ) REFERENCES R(A) ON DELETE RESTRICT ”, 下列SQL 语句不.能成功执行的是( ) A .DELETE FROM RWHERE A =2B .DELETE FROM R WHERE A =3C .DELETE FROM S WHERE A =1D .DELETE FROM S WHERE A =25.设关系R 和S 分别有m 和n 个元组,则R ×S 的元组个数是( )A .mB .nC .m+nD .m×n6.在SQL 中,与“NOT IN ”等价的操作符是( )A .<>ALLB .<>SOMEC .=SOMED .=ALL7.SQL 的SELECT 语句中,“HA VING 条件表达式”用来筛选满足条件的( )A .列B .行C .关系D .分组8.设关系模式R (A ,B ,C ),F 是R 上成立的FD 集,F ={A →B ,C →B },R 上的分解R S2ρ={AB ,AC },则分解ρ( )A .保持函数依赖集FB .丢失了C →BC .丢失了A →BD .是否保持FD ,由R 的当前关系确定9.函数依赖X →Y 能由Armstrong 推理规则导出的充分必要条件是( )A .++⊆X YB .+⊆X YC .+⊆Y XD .++=Y X10.将ER 模型转换成关系模型,属于数据库的( )A .需求分析B .概念设计C .逻辑设计D .物理设计11.多个事务执行的次序称为( )A .步骤B .过程C .流程D .调度12.如果事务T 已在数据R 上加了X 锁,则其他事务在数据R 上( )A .只可加X 锁B .只可加S 锁C .可加S 锁或X 锁D .不能加任何锁13.在数据库系统中,视图可以提供数据的( )A .完整性B .并发性C .安全性D .可恢复性14.在分布式数据库中,数据的垂直分片是对全局关系的( )A .选择操作B .投影操作C .自然联接操作D .半联接操作15.对象标识具有唯一性,其唯一性的范围是在( )A .对象内B .类内C .类层次内D .系统内二、填空题(本大题共10小题,每小题1分,共10分)请在每小题的空格中填上正确答案。
全国1月高等教育自学考试数据结构试题及答案解析

全国2018年1月高等教育自学考试数据结构试题课程代码:02331一、单项选择题(本大题共15小题,每小题2分,共30分。
在每小题的四个备选答案中,选出一个正确答案,并将正确答案的序号填在题干的括号内)1.下面程序段的时间复杂度是( )for(i=0;i<n;i++)for(j=1;j<m;j++)A[i][j]=0;A.O(n)B.O(m+n+1)C.O(m+n)D.O(m*n)2.在单链表中,指针p指向元素为x的结点,实现“删除x的后继”的语句是( )A.p=p->next;B.p->next=p->next->next;C.p->next=p;D.p=p->next->next;3.在头指针为head且表长大于1的单循环链表中,指针p指向表中某个结点,若p->next->next=head,则( )A.p指向头结点B.p指向尾结点C.*p的直接后继是头结点D.*P的直接后继是尾结点4.判定“带头结点的链队列为空”的条件是( )A.Q.front==NULLB.Q.rear==NULLC.Q.front==Q.rearD.Q.front!=Q.rear5.设有两个串T和P,求P在T中首次出现的位置的串运算称作( )A.联接B.求子串C.字符定位D.子串定位6.广义表A=(a,(b),(),(c,d,e))的长度为( )A.4B.5C.6D.77.一棵含18个结点的二叉树的高度至少为( )A.3B.4C.5D.68.已知二叉树的先序序列为ABDECF,中序序列为DBEAFC,则后序序列为( )A.DEBAFCB.DEFBCAC.DEBCFAD.DEBFCA9.无向图中一个顶点的度是指图中( )A.通过该顶点的简单路径数B.与该顶点相邻接的顶点数C.通过该顶点的回路数D.与该顶点连通的顶点数10.已知一个图如下所示,从顶点a出发进行广度优先遍历可能得到的序列为( )A.a c e f b dB.a c b d f eC.a c b d e fD.a c d b f e11.在下列排序方法中,平均时间性能为O(nlogn)且空间性能最好的是( )A.快速排序B.堆排序C.归并排序D.基数排序12.已知一组关键字为{25,48,36,72,79,82,23,40,16,35},其中每相邻两个为有序子序列。
浙江省1月自学考试数据结构导论试题及答案解析

浙江省2018年1月自学考试数据结构导论试题课程代码:02142一、单项选择题(在每小题的四个备选答案中,选出一个正确答案,并将正确答案的序号填在题干的括号内。
每小题1分,共14分)1.计算机算法指的是( )。
A.计算方法B.排序方法C.解决某一问题的有限运算序列D.调度方法2.在一个单链表中,若p↑结点不是最后结点,在p↑之后插入s↑结点,则实行( )。
A. s↑.next:=p;p↑.next=s;B. s↑.next:=p↑.next;p↑.next:=s;C. s↑.next:=p↑.next;p:=s;D. p↑.next:=s;s↑.next=p;3.某个向量第一元素的存储地址为100,每个元素的长度为2,则第五个元素的地址是( )。
A.110B.108C.100D.1204.循环队列用数组A[0..m-1]存放其元素值,已知其头尾指针分别是front和rear,则当前队列中的元素个数是( )。
A.(rear-front+m) MOD mB.rear-front+1C.rear-front-1D.rear-front5.栈和队列的共同特点是( )。
A.都是先进后出B.都是先进先出C.只允许在端点处插入和删除元素D.没有共同点6.深度为n的二叉树中所含叶子结点的个数最多为( )个。
A.2nB.nC.2n-1D.2n-17.树最适合用来表示( )。
A.有序数据元素B.无序数据元素C.元素之间具有分支层次关系的数据D.元素之间无联系的数据8.下面的二叉树中,( )不是完全二叉树。
9.下列说法错误的是( )。
A.一个图的邻接矩阵表示是唯一的B.一个图的邻接表表示是不唯一的C.一个图的生成树必为该图的极小连通子图D.一个无环有向图的拓扑排序序列必唯一10.设有6个结点的无向图,该图至少应有( )条边才能确保是一个连通图。
A.5B.6C.7D.811.对线性表进行二分查找时,要求线性表必须( )。
数据结构题库及答案详解

数据结构题库及答案详解一、选择题1. 在数据结构中,线性结构的特点是什么?A. 结构中存在唯一的开始结点和终端结点B. 结构中所有结点的前驱和后继都存在C. 结构中所有结点都只有一个直接前驱和一个直接后继D. 结构中存在多个开始结点和终端结点答案:C2. 栈是一种特殊的线性表,其特点是:A. 先进先出B. 先进后出C. 可以同时在两端进行插入和删除操作D. 只能在一端进行插入和删除操作答案:D3. 在二叉树的遍历算法中,先序遍历的顺序是:A. 先访问根结点,然后遍历左子树,最后遍历右子树B. 先遍历左子树,然后访问根结点,最后遍历右子树C. 先遍历右子树,然后访问根结点,最后遍历左子树D. 先遍历左右子树,最后访问根结点答案:A二、填空题4. 在图的遍历中,______算法可以避免重复访问同一顶点。
5. 哈希表的冲突可以通过______方法来解决。
答案:4. 深度优先搜索(DFS)5. 链地址法或开放地址法三、简答题6. 简述排序算法中的快速排序算法的基本原理。
答案:快速排序算法是一种分治算法,它通过选择一个元素作为“基准”,然后将数组分为两个子数组,一个包含小于基准的元素,另一个包含大于基准的元素。
然后对这两个子数组递归地应用快速排序算法。
7. 解释什么是递归,并给出一个递归函数的例子。
答案:递归是一种在函数中调用自身的编程技术。
递归函数必须有一个明确的终止条件,以避免无限递归。
例如,计算阶乘的递归函数如下:```int factorial(int n) {if (n == 0) return 1; // 终止条件return n * factorial(n - 1); // 递归调用}```四、编程题8. 编写一个函数,实现单链表的反转。
答案:```c// 假设ListNode是链表节点的定义ListNode* reverseList(ListNode* head) {ListNode* prev = NULL;ListNode* curr = head;ListNode* next = NULL;while (curr != NULL) {next = curr->next; // 保存下一个节点curr->next = prev; // 反转指针prev = curr; // 移动prevcurr = next; // 移动curr}return prev; // 新的头节点}```9. 给定一个整数数组,请实现一个函数来找到数组中的最长连续子序列的长度。
2020年1月全国自考试题及答案解析数据结构试卷及答案解析
1全国2018年1月高等教育自学考试数据结构试题课程代码:02331一、单项选择题(本大题共15小题,每小题2分,共30分)在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。
错选、多选或未选均无分。
1.逻辑上通常可以将数据结构分为( )A.动态结构和静态结构B.顺序结构和链式结构C.线性结构和非线性结构D.初等结构和组合结构2.在下列对顺序表进行的操作中,算法时间复杂度为O(1)的是( )A.访问第i 个元素的前驱(1<n i ≤)B.在第i 个元素之后插入一个新元素(n i 1≤≤)C.删除第i 个元素(n i 1≤≤)D.对顺序表中元素进行排序3.假设带头结点的单向循环链表的头指针为head,则该链表为空的判定条件是( )A.head= =NULLB.head –>next= =NULLC.head!=NULLD.head –>next= =head4.已知栈的最大容量为4。
若进栈序列为1,2,3,4,5,6,且进栈和出栈可以穿插进行,则可能出现的出栈序列为( )A.5,4,3,2,1,6B.2,3,5,6,1,4C.3,2,5,4,1,6D.1,4,6,5,2,35.与线性表相比,串的插入和删除操作的特点是( )A.通常以串整体作为操作对象B.需要更多的辅助空间C.算法的时间复杂度较高D.涉及移动的元素更多6.假设以三元组表表示稀疏矩阵,则与如图所示三元组表对应的4×5的稀疏矩阵是(注:矩阵的行列下标均从1开始)( )A.⎪⎪⎪⎪⎪⎭⎫ ⎝⎛--00405000000000706080 B.⎪⎪⎪⎪⎪⎭⎫ ⎝⎛--000000040530007060802 C.⎪⎪⎪⎪⎪⎭⎫ ⎝⎛--00405000073000006080 D.⎪⎪⎪⎪⎪⎭⎫⎝⎛--000003040500007060807.以下有关广义表的表述中,正确的是( )A.由0个或多个原子或子表构成的有限序列B.至少有一个元素是子表C.不能递归定义D.不能为空表8.树的先根序列等同于与该树对应的二叉树的( )A.先序序列B.中序序列C.后序序列D.层序序列9.假设有.向图含n 个顶点及e 条弧,则表示该图的邻接表中包含的弧结点个数为() A.n B.eC.2eD.n ·e10.如图所示的有向无环图可以得到的不同拓扑序列的个数为( )A.1B.2C.3D.411.下列排序方法中,稳定的排序方法为( )A.希尔排序B.堆排序C.快速排序D.直接插入排序12.对下列关键字序列进行快速排序时,所需进行比较次数最少的是( )A.(1,2,3,4,5,6,7,8)B.(8,7,6,5,4,3,2,1)C.(4,3,8,6,1,7,5,2)D.(2,1,5,4,3,6,7,8)13.含n 个关键字的二叉排序树的平均查找长度主要取决于( )A.关键字的个数B.树的形态C.关键字的取值范围D.关键字的数据类型14.下列查找算法中,平均查找长度与元素个数n 不直接相关的查找方法是( )A.分块查找B.顺序查找C.二分查找D.散列查找15.可有效提高次关键字查找效率的文件是()A.顺序文件B.倒排文件C.散列文件D.VSAM文件二、填空题(本大题共10小题,每小题2分,共20分)请在每小题的空格中填上正确答案。
自考数据结构试题及答案
自考数据结构试题及答案一、选择题(每题2分,共10分)1. 在数据结构中,线性表的顺序存储结构通常使用什么数据类型来存储元素?A. 数组B. 链表C. 栈D. 队列答案:A2. 下列关于栈的描述中,错误的是:A. 栈是一种后进先出(LIFO)的数据结构B. 栈顶元素可以被访问和修改C. 栈底元素可以被访问和修改D. 栈可以进行插入和删除操作答案:C3. 在二叉树的遍历算法中,先访问根节点,然后访问左子树,最后访问右子树的遍历方式是:A. 前序遍历B. 中序遍历C. 后序遍历D. 层序遍历答案:A4. 哈希表的冲突解决方法中,链地址法的基本思想是:A. 将冲突的元素存储在同一个数组位置B. 将冲突的元素存储在不同的数组位置C. 将冲突的元素存储在链表中D. 将冲突的元素存储在树中答案:C5. 下列算法中,不属于排序算法的是:A. 冒泡排序B. 快速排序C. 深度优先搜索D. 归并排序答案:C二、填空题(每题2分,共10分)1. 在数据结构中,_________是指元素之间存在一对一关系的线性结构。
答案:线性表2. 递归算法的基本思想是将问题分解为若干个规模更小的相同问题,然后_________。
答案:递归求解3. 在图的遍历算法中,广度优先搜索(BFS)通常使用_________数据结构来实现。
答案:队列4. 一个长度为n的有序数组,使用二分查找算法查找一个元素的时间复杂度为_________。
答案:O(log n)5. 哈夫曼编码是一种用于数据压缩的编码方法,它是一种_________编码。
答案:可变长三、简答题(每题5分,共20分)1. 请简述链表和数组在存储结构上的主要区别。
答案:链表的存储结构是动态的,每个元素包含数据和指向下一个元素的指针,而数组的存储结构是静态的,元素在内存中连续存储。
2. 什么是图的深度优先搜索(DFS)算法?请简述其基本步骤。
答案:深度优先搜索(DFS)算法是一种遍历图的算法,它从一个顶点开始,尽可能深地搜索图的分支。
1月全国数据结构自考试题及答案解析
14.如果在排序过程中,每次均将一个待排序的记录按关键字大小加入到前面已经有序的子表中的适当位置,则该排序方法称为( )
A.插入排序B.归并排序
C.冒泡排序D.堆排序
15.设置溢出区的文件是( )
A.索引非顺序文件B.ISAM文件
C.VSAM文件D.顺序文件
二、填空题(本大题共10小题,每小题2分,共20分)
void union (LinkList La, LinkList Lb)
{
//本算法的功能是将所有Lb表中存在而La表中不存在的结点插入到La表中
LinkList pre = La, q;
LinkList pa = La -> next;
LinkList pb = Lb -> next;
free (Lb);
{count ++; i=j-sub -> length +1;}
else i++;
}
return count;
}
(1)
(2)
32.下列函数MDFSForest的功能是,对一个采用邻接矩阵作存储结构的图进行深度优先搜索遍历,输出所得深度优先生成森林中各条边。请在空缺处填入合适内容,使其成为一个完整的算法。
C.广度优先生成树中D.深度优先生成森林中
12.当在二叉排序树中插入一个新结点时,若树中不存在与待插入结点的关键字相同的结点,且新结点的关键字小于根结点的关键字,则新结点将成为( )
A.左子树的叶子结点B.左子树的分支结点
C.右子树的叶子结点D.右子树的分支结点
13.希尔排序的增量序列必须是( )
A.递增的பைடு நூலகம்.随机的
全国1月高等教育自学考试数据结构试题及答案
全国2010年1月高等教育自学考试数据结构试题(课程代码:02331)一、单项选择题(本大题共15小题,每小题2分,共30分)在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。
错选、多选或未选均无分。
1.若一个算法的时间复杂度用T(n)表示,其中n的含义是()A.问题规模B.语句条数C.循环层数D.函数数量2.具有线性结构的数据结构是()A.树B.图C.栈和队列D.广义表3.将长度为n的单链表连接在长度为m的单链表之后,其算法的时间复杂度为()A.O(1) B.O(m)C.O(n) D.O(m+n)4.在带头结点的双向循环链表中插入一个新结点,需要修改的指针域数量是()A.2个B.3个.C.4个D.6个5.假设以数组A[60]存放循环队列的元素,其头指针是front=47,当前队列有50个元素,则队列的尾指针值为()A.3 B.37C.50 D.976.若栈采用链式存储结构,则下列说法中正确的是()A.需要判断栈满且需要判断栈空B.不需要判断栈满但需要判断栈空C.需要判断栈满但不需要判断栈空D.不需要判断栈满也不需要判断栈空7.若串str=”Software”,其子串的数目是()A.8 B.9C.36 D.378.设有一个10阶的下三角矩阵A,采用行优先压缩存储方式,a ll为第一个元素,其存储地址为1000,每个元素占一个地址单元,则a85的地址为()A.1012 B.1017C.1032 D.10399.允许结点共享的广义表称为()A.纯表B.线性表C.递归表D.再入表10.下列数据结构中,不属于二叉树的是()A.B树B.AVL树C.二叉排序树D.哈夫曼树11.对下面有向图给出了四种可能的拓扑序列,其中错误..的是()A.1,5,2,6,3,4 B.1,5,6,2,3,4C.5,1,6,3,4,2 D.5,1,2,6,4,312.以v1为起始结点对下图进行深度优先遍历,正确的遍历序列是()A.v1,v2,v3,v4,v5,v6,v7 B.v1,v2,v5,v4,v3,v7,v6C.v1,v2,v3,v4,v7,v5,v6 D.v1,v2,v5,v6,v7,v3,v413.下列排序算法中不稳定的是()A.快速排序B.归并排序C.冒泡排序D.直接插入排序14.一个有序表为(1,3,9,12,32,41,45,62,75,77,82,95,100),当采用折半查找方法查找值32时,查找成功需要的比较次数是()A.2 B.3C.4 D.815.采用ISAM组织文件的方式属于()A.链组织B.顺序组织C.散列组织D.索引组织二、填空题(本大题共10小题,每小题2分,共20分)请在每小题的空格中填上正确答案。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
全国2018年1月自学考试数据结构试题
课程代码:02331
一、单项选择题(本大题共15小题,每小题2分,共30分)
在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。
错选、多选或未选均无分。
1.若一个算法的时间复杂度用T(n)表示,其中n的含义是()
A.问题规模B.语句条数
C.循环层数D.函数数量
2.具有线性结构的数据结构是()
A.树B.图
C.栈和队列D.广义表
3.将长度为n的单链表连接在长度为m的单链表之后,其算法的时间复杂度为()
A.O(1) B.O(m)
C.O(n) D.O(m+n)
4.在带头结点的双向循环链表中插入一个新结点,需要修改的指针域数量是()
A.2个B.3个.
C.4个D.6个
5.假设以数组A[60]存放循环队列的元素,其头指针是front=47,当前队列有50个元素,则队列的尾指针值为()
A.3 B.37
C.50 D.97
6.若栈采用链式存储结构,则下列说法中正确的是()
A.需要判断栈满且需要判断栈空
B.不需要判断栈满但需要判断栈空
C.需要判断栈满但不需要判断栈空
D.不需要判断栈满也不需要判断栈空
7.若串str=”Software”,其子串的数目是()
A.8 B.9
C.36 D.37
8.设有一个10阶的下三角矩阵A,采用行优先压缩存储方式,a ll为第一个元素,其存储地址为1000,每个元素占一个地址单元,则a85的地址为()
A.1012 B.1017
C.1032 D.1039
9.允许结点共享的广义表称为()
A.纯表B.线性表
C.递归表D.再入表
10.下列数据结构中,不属于二叉树的是()
A.B树B.AVL树
C.二叉排序树D.哈夫曼树
11.对下面有向图给出了四种可能的拓扑序列,其中错误
..的是()
A.1,5,2,6,3,4 B.1,5,6,2,3,4
C.5,1,6,3,4,2 D.5,1,2,6,4,3
12.以v1为起始结点对下图进行深度优先遍历,正确的遍历序列是()
A.v1,v2,v3,v4,v5,v6,v7 B.v1,v2,v5,v4,v3,v7,v6
C.v1,v2,v3,v4,v7,v5,v6 D.v1,v2,v5,v6,v7,v3,v4
13.下列排序算法中不稳定的是()
A.快速排序B.归并排序
C.冒泡排序D.直接插入排序
14.一个有序表为(1,3,9,12,32,41,45,62,75,77,82,95,100),当采用折半查找方法查找值32时,查找成功需要的比较次数是()
A.2 B.3
C.4 D.8
15.采用ISAM组织文件的方式属于()
A.链组织B.顺序组织
C.散列组织D.索引组织
二、填空题(本大题共10小题,每小题2分,共20分)
请在每小题的空格中填上正确答案。
错填、不填均无分。
16.数据元素及其关系在计算机存储器内的表示称为_________。
17.长度为n的线性表采用单链表结构存储时,在等概率情况下查找第i个元素的时间复杂度是_________。
18.下面是在顺序栈上实现的一个栈基本操作,该操作的功能是_________。
typedef struct{
DataType data[100];
int top;
}SeqStack;
DataType f18(SeqStack*S)
{ if(StackEmpty(S))
Error(”Stack is empty”);
return S->data[S->top];
}
19.在串匹配中,一般将主串称为目标串,将子串称为_________。
20.已知广义表C=(a(b,c),d),则:tail(head(tail(C)))= _________。
21.用6个权值分别为6、13、18、30、7和16的结点构造一棵哈夫曼(Huffman)树,该树的带权路径长度为_________。
22.已知有向图如下所示,其中顶点A到顶点C的最短路径长度是_________。
23.对序列{55,46,13,05,94,17,42}进行基数排序,第一趟排序后的结果是_________。
24.高度为3的3阶B-树最少的关键字总数是_________。
25.VSAM通常作为大型索引顺序文件的标准组织,其动态索引结构采用的是_________。
三、解答题(本大题共4小题,每小题5分,共20分)
26.假设二叉树的RNL遍历算法定义如下:
若二叉树非空,则依次执行如下操作:
(1)遍历右子树;
(2)访问根节点;
(3)遍历左子树。
已知一棵二叉树如图所示,请给出其RNL遍历的结果序列。
27.已知一个无向图G=(V,E),其中V={A,B,C,D,E,F},邻接矩阵表示如下所示。
请回答下列问题:
(1)请画出对应的图G。
(2)画出图G的邻接表存储结构。
28.已知一组待排记录的关键字序列为(16,12,18,60,15,36,14,18,25,85),用堆排序方法建小根堆,请给出初始建堆后的序列。
29.已知一棵二叉排序树如图所示。
请回答下列问题:
(1)画出插入元素23后的树结构;
(2)请画出在原图中删除元素57后的树结构。
四、算法阅读题(本大题共4小题,每小题5分,共20分)
30.已知下列程序,Ls指向带头结点的单链表。
Typedefstruct node {
DataType data;
struct node * next;
} * LinkList;
void f30( LinkList Ls )
{ LinkList p, q;
q = Ls->next;
if ( q && q->next ) {
Ls->next = q->next;
p=q
while ( p->next )
p = p->next;
p->next = q;
q->next = NULL;
}
}
请回答下列问题:
(1)当Ls指向的链表如下图所示,请画出执行本函数之后的链表的结果。
(2)请简述算法的功能。
31.已知字符串处理函数f31程序如下。
int f31(char*strl,char*str2)
{ while(*strl==*str2&&(*strl!=’\0’)){
strl++;
str2++;
}
return(*strl-*str2 ? l∶0);
}
请回答下列问题:
(1)若调用语句是f31(”abcde”,”abcdf’),则函数的返回值是什么?若调用语句是
f31(”abcde”,”abcde”),则函数的返回值是什么?
(2)简述该函数的功能。
32.数组A[]中存储有n个整数,请阅读下列程序。
void f32(intA[],int n)
{ inti,j,k,x;
k=n-l;
while(k>0){
i=k; k=0;
for(j=O;j<i;j++)
if(A[j]>A[j+1]){
x=A[j];
A[j]=A[j+l];
A[j+1]=x;
k=j;
}//end of if
}//end of while
return;
}
请回答下列问题:
(1)当A[]={10,8,2,4,6,7}时,执行f32(A,6)后,数组A中存储的结果是什么?
(2)说明该算法的功能。
33.下面程序实现二分查找算法。
Typedef struct{
KeyType key;
InfoType otherinfo;
}SeqList[N+1];
int BinSearch(SeqList R, int n,KeyType K)
{ int low=1,high=n;
while( (1) ){
mid=(1ow+high)/2;
if( (2) )
return mid;
if(R[mid].key>K)
high=mid-1;
else
(3) ;
}
return O;
} //BinSearch
请在空白处填写适当内容,使该程序功能完整。
(1)
(2)
(3)
五、算法设计题(本题10分)
34.已知二叉树采用二叉链表存储,其结点结构定义如下:
typedef struct Node{
ElmType data;
struct Node *lchild,*rchild;
}*BiTree;
请编写递归函数SumNodes(BiTree T),返回二叉树T的结点总数。