02331数据结构 全国13年10月自考 试题

合集下载

自考数据结构02331历年试题及答案(2009--2018年(缺少2017年))

自考数据结构02331历年试题及答案(2009--2018年(缺少2017年))

自考数据结构02331历年试题及答案(2009--2015个人整理版)全国2009年1月自学考试数据结构试题一、单项选择题(本大题共15小题,每小题2分,共30分)在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。

错选、多选或未选均无分。

1.下列程序段的时间复杂度为( )9 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(n 2)2.假设某个带头结点的单链表的头指针为head ,则判定该表为空表的条件是( )22 A.head==NULL ; B.head->next==NULL ; C.head!=NULL ; D.head->next==head ;3.栈是一种操作受限的线性结构,其操作的主要特征是( )32 A.先进先出 B.后进先出 C.进优于出 D.出优于进4.假设以数组A[n]存放循环队列的元素,其头、尾指针分别为front 和rear 。

若设定尾指针指向队列中的队尾元素,头指针指向队列中队头元素的前一个位置,则当前存于队列中的元素个数为( ) A.(rear-front-1)%n B.(rear-front)%n C.(front-rear+1)%n D.(rear-front+n)%n5.判断两个串大小的基本准则是( )52 A.两个串长度的大小 B.两个串中首字符的大小 C.两个串中大写字母的多少 D.对应的第一个不等字符的大小6.二维数组A[4][5]按行优先顺序存储,若每个元素占2个存储单元,且第一个元素A[0][0]的存储地址为1000,则数组元素A[3][2]的存储地址为( )60 A.1012 B.1017 C.1034 D.10367.高度为5的完全二叉树中含有的结点数至少为( )72 A.16 B.17 C.31 D.328.已知在一棵度为3的树中,度为2的结点数为4,度为3的结点数为3,则该树中的叶子结点数为( ) A.5 B.8 C.11 D.189.下列所示各图中是中序线索化二叉树的是( A)81A10.已知含6个顶点(v 0,v 1,v 2,v 3,v 4,v 5)的无向图的邻接矩阵如图所示,则从顶点v 0出发进行深度优先遍历可能得到的顶点访问序列为( )108 A.(v 0,v 1,v 2,v 5,v 4,v 3) B.(v 0,v 1,v 2,v 3,v 4,v 5) C.(v 0,v 1,v 5,v 2,v 3,v 4) D.(v 0,v 1,v 4,v 5,v 2,v 3)11.如图所示有向图的一个拓扑序列是( )a00a01 a02 a03 a04 a32A.ABCDEFB.FCBEADC.FEDCBAD.DAEBCF12.下列关键字序列中,构成大根堆的是( ) A.5,8,1,3,9,6,2,7 B.9,8,1,7,5,6,2,33 C.9,8,6,3,5,l ,2,7 D.9,8,6,7,5,1,2,313.对长度为15的有序顺序表进行二分查找,在各记录的查找概率均相等的情况下,查找成功时所需进行的关键字比较次数的平均值为( )172A.1539B.1549 C.1551 D.1555 14.已知一个散列表如图所示,其散列函数为H(key)=key %11,采用二次探查法处理冲突,则下一个插入的关键字49的地址为( D )d 19715.数据库文件是由大量带有结构的( )206 A.记录组成的集合 B.字符组成的集合 C.数据项组成的集合 D.数据结构组成的集合二、填空题(本大题共10小题,每小题2分,共20分)请在每小题的空格中填上正确答案。

2010年至2013年数据结构答案02331.jpg资料

2010年至2013年数据结构答案02331.jpg资料

全国2010年1月高等教育自学考试数据结构试题及参考答案课程代码:02331一、单项选择题(本大题共15小题,每小题2分,共30分)在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。

错选、多选或未选均无分。

1.若一个算法的时间复杂度用T(n)表示,其中n的含义是( A )A.问题规模B.语句条数C.循环层数D.函数数量2.具有线性结构的数据结构是( C )A.树B.图C.栈和队列D.广义表3.将长度为n的单链表连接在长度为m的单链表之后,其算法的时间复杂度为( B )A.O(1) B.O(m)C.O(n) D.O(m+n)4.在带头结点的双向循环链表中插入一个新结点,需要修改的指针域数量是( C )A.2个B.3个C.4个D.6个5.假设以数组A[60]存放循环队列的元素,其头指针是front=47,当前队列有50个元素,则队列的尾指针值为( B )A.3 B.37C.50 D.976.若栈采用链式存储结构,则下列说法中正确的是( B )A.需要判断栈满且需要判断栈空B.不需要判断栈满但需要判断栈空C.需要判断栈满但不需要判断栈空D.不需要判断栈满也不需要判断栈空7.若串str=”Software”,其子串的数目是( D )A.8 B.9C.36 D.378.设有一个10阶的下三角矩阵A,采用行优先压缩存储方式,a ll为第一个元素,其存储地址为1000,每个元素占一个地址单元,则a85的地址为( C )A.1012 B.1017C.1032 D.10399.允许结点共享的广义表称为( D )A.纯表B.线性表C.递归表D.再入表10.下列数据结构中,不属于二叉树的是( A )A.B树B.AVL树C.二叉排序树D.哈夫曼树11.对下面有向图给出了四种可能的拓扑序列,其中错误..的是( C )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为起始结点对下图进行深度优先遍历,正确的遍历序列是( D )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 )A.快速排序B.归并排序C.冒泡排序D.直接插入排序14.一个有序表为(1,3,9,12,32,41,45,62,75,77,82,95,100),当采用折半查找方法查找值32时,查找成功需要的比较次数是( B )A.2 B.3C.4 D.815.采用ISAM组织文件的方式属于( D )A.链组织B.顺序组织C.散列组织D.索引组织二、填空题(本大题共10小题,每小题2分,共20分)请在每小题的空格中填上正确答案。

02331数据结构2013年10月份历年真题附答案

02331数据结构2013年10月份历年真题附答案

绝密★考试结束前全国2013年10月高等教育自学考试数据结构试题课程代码:02331请考生按规定用笔将所有试题的答案涂、写在答题纸上。

选择题部分注意事项:1. 答题前,考生务必将自己的考试课程名称、姓名、准考证号用黑色字迹的签字笔或钢笔填写在答题纸规定的位置上。

2. 每小题选出答案后,用2B铅笔把答题纸上对应题目的答案标号涂黑。

如需改动,用橡皮擦干净后,再选涂其他答案标号。

不能答在试题卷上。

一、单项选择题(本大题共15小题,每小题2分,共30分)在每小题列出的四个备选项中只有一个是符合题目要求的,请将其选出并将“答题纸”的相应代码涂黑。

错涂、多涂或未涂均无分。

1.算法的时间复杂度表征的是A.算法的可读性B.算法的难易程度C.执行算法所耗费的时间D.执行算法所耗费的存储空间2.对需要频繁插入和删除结点的线性表,适合的存储方式是A.顺序储存B.链式存储C.索引存储D.散列存储3.在头指针为head的循环链表中,判断指针变量P指向尾结点的条件是A.p->next->next==head B.p->next==headC.p->next->next==NULL D.p->next==NULL4.迪杰斯特拉(Dijkstra)算法的功能是A.求图中某顶点到其他顶点的最短路径B.求图中所有顶点之间的最短路径C.求图的最小生成树D.求图的拓扑排序序列5.若栈的进栈序列为1,2,3,4,5,则经过出入栈操作不可能...获得的出栈序列是A.4,5,3,2,1 B.4,3,5,1,2C.1,2,3,4,5 D.5,4,3,2,16.A是7×4的二维数组,按行优先方式顺序存储,元素A[0][0]的存储地址为1 000,若每个元素占2个字节,则元素A[3][3]的存储地址为A.1015 B.1016C.1028 D.10307.深度为4的完全二叉树的结点数至少为A.4 B.8C.13 D.158.若采用邻接矩阵A存储有向图G,则结点k的入度等于A中A.结点k对应行元素之和B.结点k对应列元素之和C.结点k对应行和列元素之和D.非零元素之和9.无向图G的邻接矩阵一定是A.对称矩阵B.对角矩阵C.三角矩阵D.单位矩阵10.下列关于有向带权图G的叙述中,错误..的是A.图G的任何一棵生成树都不含有回路B.图G生成树所含的边数等于顶点数减1C.图G含有回路时无法得到拓扑序列D.图G的最小生成树总是唯一的11.在下列排序算法中,关键字比较次数与初始排列次序无关的是A.冒泡排序B.希尔排序C.直接插入排序D.直接选择排序1 2.对下图进行拓扑排序,可以得到的拓扑序列是A.a b c d e B.b a c d eC.b c a d e D.a b d c e13.下列线性表中,能使用二分查找的是A.顺序存储(2,12,5,6,9,3,89,34,25) B.链式存储(2,12,5,6,9,3,89,34,25) C.顺序存储(2,3,5,6,9,12,25,34,89) D.链式存储(2,3,5,6,9,12,25,34,89) 14.在下列查找方法中,平均查找长度与结点数量无直接关系的是A.顺序查找B.分块查找C.散列查找D.基于B树的查找15.下列排序算法中,时间复杂度为O(nlog2 n)的算法是A.快速排序B.冒泡排序C.直接选择排序D.直接插入排序非选择题部分注意事项:用黑色字迹的签字笔或钢笔将答案写在答题纸上,不能答在试题卷上。

全国10月高等教育自学考试数据结构试题及答案解析

全国10月高等教育自学考试数据结构试题及答案解析

全国2018年10月高等教育自学考试数据结构试题课程代码:02331一、单项选择题(本大题共15小题,每小题2分,共30分)在每小题列出的四个选项中只有一个选项是符合题目要求的,请将正确选项前的字母填在题后的括号内。

1.若结点的存储地址与其关键字之间存在某种映射关系,则称这种存储结构为( )A.顺序存储结构B.链式存储结构C.索引存储结构D.散列存储结构2.在长度为n的顺序表的第i(1≤i≤n+1)个位置上插入一个元素,元素的移动次数为( )A.n-i+1B.n-iC.iD.i-13.对于只在表的首、尾两端进行插入操作的线性表,宜采用的存储结构为( )A.顺序表B.用头指针表示的单循环链表C.用尾指针表示的单循环链表D.单链表4.若进栈序列为a,b,c,则通过入出栈操作可能得到的a,b,c的不同排列个数为( )A.4B.5C.6D.75.为查找某一特定单词在文本中出现的位置,可应用的串运算是( )A.插入B.删除C.串联接D.子串定位6.已知函数Sub(s,i,j)的功能是返回串s中从第i个字符起长度为j的子串,函数Scopy(s,t)的功能为复制串t到s。

若字符串S=″SCIENCESTUDY″,则调用函数Scopy(P,Sub(S,1,7))后得到( )A.P=″SCIENCE″B.P=″STUDY″C.S=″SCIENCE″D.S=″STUDY″7.三维数组A[4][5][6]按行优先存储方法存储在内存中,若每个元素占2个存储单元,且数组中第一个元素的存储地址为120,则元素A[3][4][5]的存储地址为( )A.356B.358C.360D.3628.如右图所示广义表是一种( )A.线性表B.纯表C.结点共享表D.递归表9.下列陈述中正确的是( )A.二叉树是度为2的有序树B.二叉树中结点只有一个孩子时无左右之分C.二叉树中必有度为2的结点D.二叉树中最多只有两棵子树,并且有左右之分10.n个顶点的有向完全图中含有向边的数目最多为( )A.n-1B.nC.n(n-1)/2D.n(n-1)11.已知一个有向图如右所示,则从顶点a出发进行深度优先偏历,不可能得到的DFS序列为( )A.a d b e f cB.a d c e f bC.a d c b f eD.a d e f c b12.在最好和最坏情况下的时间复杂度均为O(nlogn)且稳定的排序方法是( )A.快速排序B.堆排序C.归并排序D.基数排序13.不可能生成右图所示二叉排序树的关键字序列是( )A.4 5 3 1 2B.4 2 5 3 1C.4 5 2 1 3D.4 2 3 1 514.ALV树是一种平衡的二叉排序树,树中任一结点的( )A.左、右子树的高度均相同B.左、右子树高度差的绝对值不超过1C.左子树的高度均大于右子树的高度D.左子树的高度均小于右子树的高度15.在VSAM文件的控制区间中,记录的存储方式为( )A.无序顺序B.有序顺序C.无序链接D.有序链接二、填空题(本大题共10小题,每小题2分,若有两个空格,每个空格1分,共20分)16.若一个算法中的语句频度之和为T(n)=3720n+4nlogn,则算法的时间复杂度为________。

计算机科学与技术自考本科02331自考数据结构(题库含答案)

计算机科学与技术自考本科02331自考数据结构(题库含答案)

02331数据结构一、单选题1.下列程序段的时间复杂度为( D )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(n 2)2.假设某个带头结点的单链表的头指针为head ,则判定该表为空表的条件是( B )A.head==NULL ;B.head->next==NULL ;C.head!=NULL ;D.head->next==head ;3.栈是一种操作受限的线性结构,其操作的主要特征是( B )A.先进先出B.后进先出C.进优于出D.出优于进4.假设以数组A[n]存放循环队列的元素,其头、尾指针分别为front 和rear 。

若设定尾指针指向队列中的队尾元素,头指针指向队列中队头元素的前一个位置,则当前存于队列中的元素个数为( B )A.(rear-front-1)%nB.(rear-front)%nC.(front-rear+1)%nD.(rear-front+n)%n5.判断两个串大小的基本准则是( D )52A.两个串长度的大小B.两个串中首字符的大小C.两个串中大写字母的多少D.对应的第一个不等字符的大小6.二维数组A[4][5]按行优先顺序存储,若每个元素占2个存储单元,且第一个元素A[0][0]的存储地址为1000,则数组元素A[3][2]的存储地址为( C )A.1012B.1017C.1034D.10367.高度为5的完全二叉树中含有的结点数至少为( A )A.16B.17C.31D.328.已知在一棵度为3的树中,度为2的结点数为4,度为3的结点数为3,则该树中的叶子结点数为( C )A.5B.8C.11D.189.下列关键字序列中,构成大根堆的是( D )A.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,310.对长度为15的有序顺序表进行二分查找,在各记录的查找概率均相等的情况下,查找成功时所需进行的关键字比较次数的平均值为( B )A.1539B.1549C.1551D.155512.估算算法时间复杂度时考虑的问题规模通常是指算法求解问题的 ( A )。

数据结构真题2013年10月

数据结构真题2013年10月

数据结构真题2013年10月(总分:100.01,做题时间:90分钟)一、{{B}}单项选择题{{/B}}(总题数:15,分数:30.00)1.算法的时间复杂度表征的是______∙ A.算法的可读性∙ B.算法的难易程度∙ C.执行算法所耗费的时间∙ D.执行算法所耗费的存储空间(分数:2.00)A.B.C. √D.解析:[考点] 算法的时间复杂度定义 [解析] (1)执行算法所耗费的时间,即时间复杂性;(2)执行算法所耗费的存储空间,主要是辅助空间,即空间复杂性;(3)算法应易于理解、易于编程、易于调试等,即可读性和可操作性。

因此表征算法时间复杂度的是执行算法耗费的时间,C正确。

2.对需要频繁插入和删除结点的线性表,适合的存储方式是______∙ A.顺序存储∙ B.链式存储∙ C.索引存储∙ D.散列存储(分数:2.00)A.B. √C.D.解析:[考点] 链式存储方式 [解析] 应该采用链式存储结构。

因为采用链式结构存储线性表,插入和删除操作需要从头结点起查找被插入或删除结点的前驱结点,并修改这些结点的指针域,查找过程平均移动指针域为表长的一半;而采用顺序结构存储线性表,插入和删除操作需要平均移动表中的一半元素。

但移动指针域操作比移动元素操作花费的时间少得多。

3.在头指针为head的循环链表中,判断指针变量P指向尾结点的条件是______∙ A.p->next->next==head∙ B.p->next==head∙ C.p->next->next==NULL∙ D.p->next==NULL(分数:2.00)A.B. √C.D.解析:[考点] 循环链表的特点 [解析] 循环链表的特点是单链表中最后一个结点(终端结点)的指针域不为空,而是指向链表的头结点,使整个链表构成一个环;循环结束的判断条件不再是P或P→next是否为空,而是他们是否等于头指针。

因此答案选B。

4.迪杰斯特拉(Dijkstra)算法的功能是______∙ A.求图中某顶点到其他顶点的最短路径∙ B.求图中所有顶点之间的最短路径∙ C.求图的最小生成树∙ D.求图的拓扑排序序列(分数:2.00)A. √B.C.D.解析:[考点] 迪杰斯特拉(Dijkstra)算法的功能[解析] Dijkstra(迪杰斯特拉)算法是典型的最短路径路由算法,用于计算从某个源点到其余各定点的最短路径。

10月全国自学考试数据结构导论试题

10月全国自学考试数据结构导论试题

B.栈空时出栈产生“下溢”,栈满时进栈产生“上溢”
C.栈空时出栈和栈满时进栈均产生“上溢”
D.栈空时出栈和栈满时进栈均产生“下溢”
6.队列操作的原则是
A.先进先出 B.后进先出
C.先进后出 D.只进不出
7.一棵深度为 6 的满二叉树有
A.63 个结点 B.64 个结点
10 月全国自学考试数据结构导论试题
全国 2013 年 10 月自考真题汇总
n) D.O(n2)
2.数据结构中结点按逻辑关系依次排列形成一条“链”的结构是
A.集合 B.图结构
C.树形结构 D.线性结构
3.在表长为 100 的顺序表中做插入运算,平均移动元素的次数为
A.25 B.33
C.50 D.100
ห้องสมุดไป่ตู้
4.已知尾指针的单向循环链表中,在第一个结点后面插入一个新结点,该 算法的时间复杂度为
A.O(1) B.O(log2n)
C.O(n) D.O(n2)
5.下列表述正确的是
A.栈空时出栈产生“上溢”,栈满时进栈产生“下溢”
C.普里姆(Prim)算法 D.迪杰斯特拉(Dijkstra)算法
12.顺序查找算法的平均查找长度为
A.log2n B.(n-1)/2
C.n/2 D.(n+1)/2
13.二叉排序树中,根的
A.左子树是二叉排序树、右子树不一定是二叉排序树
B.左子树是二叉排序树、右子树也是二叉排序树
C.127 个结点 D.128 个结点
8.在一棵度为 3 的树中,度为 3 的结点有 4 个,度为 2 的结点有 2 个,度 为 1 的结点有 3 个,则度为 0 的结点有

自考数据结构考试题及答案

自考数据结构考试题及答案

自考数据结构考试题及答案一、选择题1. 在数据结构中,算法的复杂度主要分为哪两大类?A. 时间复杂度和空间复杂度B. 逻辑复杂度和物理复杂度C. 内部复杂度和外部复杂度D. 静态复杂度和动态复杂度答案:A2. 一个长度为n的顺序表中,删除第i个元素(1≤i≤n)时,需要移动的元素个数为?A. iB. n-iC. n-i+1D. i-1答案:C3. 下列关于队列的描述中,哪一项是错误的?A. 队列是一种先进先出(FIFO)的线性表B. 队列的插入操作称为入队C. 队列的删除操作称为出队D. 队列可以在两端进行插入和删除操作答案:D4. 在二叉搜索树中,若某节点的左子树上所有节点的关键字均小于该节点的关键字,则该节点的关键字一定大于其右子树上所有节点的关键字,这种说法是:A. 正确B. 错误答案:A5. 哈希表的冲突可以通过哪些方法来解决?A. 链接法B. 开放寻址法C. 表格扩容D. 所有以上方法答案:D二、简答题1. 什么是递归?请举例说明其在数据结构中的应用。

递归是一种在程序设计中常用的方法,它允许函数调用自身。

递归的应用非常广泛,尤其是在数据结构的算法实现中。

例如,在遍历二叉树时,可以使用递归算法来实现前序、中序、后序遍历。

递归通常涉及两个关键部分:基本情况(递归结束的条件)和递归步(函数自我调用以减小问题规模)。

2. 请简述图的遍历算法中的深度优先搜索(DFS)和广度优先搜索(BFS)的区别。

深度优先搜索(DFS)和广度优先搜索(BFS)是两种基本的图遍历算法。

DFS从一个顶点开始,沿着一条路走到尽头,当无法继续前进时,回溯并沿着其他路径继续搜索。

它通常使用栈来实现,可以是显式的栈或隐式的栈(递归)。

而BFS则从一个顶点开始,逐层遍历图中的所有顶点,即先访问起始顶点的所有邻接顶点,再访问邻接顶点的邻接顶点,依此类推。

BFS通常使用队列来实现。

三、计算题1. 给定一个单链表,设计一个算法,将链表中的所有节点逆序。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

全国2013年10月高等教育自学考试
数据结构试题
课程代码:02331
一、单项选择题(本大题共15小题,每小题2分,共30分)
在每小题列出的四个备选项中只有一个是符合题目要求的,请将其选出并将“答题纸”的相应代码涂黑。

错涂、多涂或未涂均无分。

1.算法的时间复杂度表征的是
A.算法的可读性B.算法的难易程度
C.执行算法所耗费的时间D.执行算法所耗费的存储空间
2.对需要频繁插入和删除结点的线性表,适合的存储方式是
A.顺序储存B.链式存储
C.索引存储D.散列存储
3.在头指针为head的循环链表中,判断指针变量P指向尾结点的条件是
A.p->next->next==head B.p->next==head
C.p->next->next==NULL D.p->next==NULL
4.迪杰斯特拉(Dijkstra)算法的功能是
A.求图中某顶点到其他顶点的最短路径B.求图中所有顶点之间的最短路径
C.求图的最小生成树D.求图的拓扑排序序列
5.若栈的进栈序列为1,2,3,4,5,则经过出入栈操作不可能
...获得的出栈序列是A.4,5,3,2,1 B.4,3,5,1,2
C.1,2,3,4,5 D.5,4,3,2,1
6.A是7×4的二维数组,按行优先方式顺序存储,元素A[0][0]的存储地址为1 000,若每个元素占2个字节,则元素A[3][3]的存储地址为
A.1015 B.1016
C.1028 D.1030
7.深度为4的完全二叉树的结点数至少为
A.4 B.8
C.13 D.15
8.若采用邻接矩阵A存储有向图G,则结点k的入度等于A中
A.结点k对应行元素之和B.结点k对应列元素之和
C.结点k对应行和列元素之和D.非零元素之和
9.无向图G的邻接矩阵一定是
A.对称矩阵B.对角矩阵
C.三角矩阵D.单位矩阵
10.下列关于有向带权图G的叙述中,错误
..的是
A.图G的任何一棵生成树都不含有回路
B.图G生成树所含的边数等于顶点数减1
C.图G含有回路时无法得到拓扑序列
D.图G的最小生成树总是唯一的
11.在下列排序算法中,关键字比较次数与初始排列次序无关的是
A.冒泡排序B.希尔排序
C.直接插入排序D.直接选择排序
1 2.对下图进行拓扑排序,可以得到的拓扑序列是
A.a b c d e B.b a c d e
C.b c a d e D.a b d c e
13.下列线性表中,能使用二分查找的是
A.顺序存储(2,12,5,6,9,3,89,34,25) B.链式存储(2,12,5,6,9,3,89,34,25)
C.顺序存储(2,3,5,6,9,12,25,34,89) D.链式存储(2,3,5,6,9,12,25,34,89)
14.在下列查找方法中,平均查找长度与结点数量无直接关系的是
A.顺序查找B.分块查找
C.散列查找D.基于B树的查找
15.下列排序算法中,时间复杂度为O(nlog2 n)的算法是
A.快速排序B.冒泡排序
C.直接选择排序D.直接插入排序
二、填空题(本大题共10小题,每小题2分,共20分)
1 6.数据的同一种逻辑结构,可以对应多种不同的__________。

17.若在长度为n的顺序表第i个元素之前插入一个元素,则需要向后移动的元素个数是__________。

18.顺序栈存放在S[m]中,S[0]为栈底,栈顶指针top初始值为-1,则栈满的条件是top= __________。

19.队列只能在队尾进行插入操作,在队首进行__________操作。

20.广义表A=(x,((y,z),a,b)),则函数head(head(tail(A)))的值是__________。

21.以权值分别为4,3,2,1的四个叶子结点构成的哈夫曼树,其带权路径长度WPL是
_______。

22.图的遍历方法有两种,一种是深度优先遍历,另一种是__________。

23.如果排序算法是稳定的,则关键字相同的两个记录排序前后相对次序__________。

24.己知散列表表长m=11,散列函数h(key)=key%11,表中存有三个关键字15,27,39,其余地址为空,若采用线性探查法处理冲突,则关键字为60的结点保存的地址是_________。

25.己知图G的邻接表如题25图所示。

从顶点v1出发进行深度优先搜索,得到的深度优先搜索序列是__________.
三、解答题(本大题共4小题,每小题5分,共20分)
26.设Q[M]是有M个元素存储空间的循环队列,若front指向队首元素,rear指向队尾
元素的下一位置,请分别用C语言描述下列操作:
(1)将元素x入队;
(2)将队首元素出队,并保存到变量y中;
(3)计算当前队列中元素个数。

27.己知带权图G=(VE),其中V=(A,B,C,D,E),邻接矩阵如下
(1)画出对应的图G
(2)画出图G的最小生成树
28.已知一组待排记录的关键字序列为(15,11,17,59,14,35,13,17,24,84),请给出对应的小根堆序列。

29.已知二叉树如题29图,请画出该二叉树的前序线索。

四、算法阅读题(本大题共4小题,每小题5分,共20分) 30.阅读下列函数并回答问题
typedef struct node{
DataType data;
struct node *next;
}LinkNode;
Typedef LinkNode*Linklist;
void DeleX(Linklist head,DataType x)
{
LinkNode*p,*q,*s;
p=head;q=p-->next;
while(q!=NULL)
if(q->data==x){
s=q;q=q->next;
free(s);p->next=q;
}
else{
p=q;q=q->next;
}
}
(1)执行该函数后,单链表head中data值为x的结点数是多少?
(2)该函数的功能是什么?
31.阅读下列函数并回答问题
typedef struct node{
DataType data;
struct node *lchild,*rchild;
}BinTNode;
typedef B inTNode *BinTree;
void Inorder(BinTree bt)
{
if(bt!=NULL){
Inorder(bt->lchild);
printf(〃%c〃,bt->data);
Inorder(bt->rchild);
}
}
(1)给出对如题3 1图所示的二叉树执行函数Inorder后得到的输出序列。

(2)该函数的功能是什么?
32.下列函数实现直接插入排序,请填写适当内容,使其功能完整。

void f32(int r[],int N)
{
int i,j;
for(i=2;(1) ;(2) )
{ r[0]-r[i];
j=i-1;
while( (3) )
{ r[j+1]_=r[j];
j=j-1;
}
r[j+l]= r[0];
}
}
33.函数BinSearch实现二分查找,请回答下列问题。

(1)在空白处填写适当内容,使函数功能完整。

(2)查找成功时函数的返回值是什么?
(3)查找失败时函数的返回值是什么?
int BinSearch(SeqList R,KeyType k,int n)
{ int low=0,mid,high=n-1;
while(10w<=high){
mid= (1) ;
if(R[mid].key==k)
return mid;
if(R[mid].key>k)
high=mid-1;
else
low=mid+l;
}
return-1;
}
五、算法设计题(本题10分)
34.已知:
typedef struct node{
int data;
struct node *next;
} LinkNode;
typedef LinkNode *LinkList;
请编写原型为int Listisequal(LinkList A,LinkList B)的函数,指针A、B分别指向两个带头结点的单链表。

函数功能是:若单链表A、B中全部对应结点的data值相等,则返回1,否则返回0。

相关文档
最新文档