全国2013年10月高等教育自学考试数据结构

合集下载

2013级软件工程数据结构B卷答案及评分细则

2013级软件工程数据结构B卷答案及评分细则

10级软件工程专业《数据结构》试题B卷答案及评分细则一、选择题(每小题3分,共30分,选错不给分,选对给3分)1,C 2,A 3,D 4,C 5,B 6,C 7,B 8,B 9,A 10,A二、填空题(每空2分,共20分,填对给2分,填错不给分)1,2 4;2,SXSSXXSX3,-+A*BC/DE4,128 75,存储位置指针6,任意若干连续字符序列7,相同类型数据元素三、应用题1 解:其步骤为i1=index(S,S1,1)………………………………………………(2分)i2=index(S,S2,1)+3………………………………………………(2分)sub1=substr(S,i1,length(S)-i1+1) …………………………………(2分)sub2=substr(S,i2,length(S)-i2+1…………………………………………(2分) S3=concat(sub1, sub2) ………………………………………………(2分)2 解本题即为构造最小生成树,按照最小生成树的构造方法,构造如下:303解:其拓扑排序序列为152634;156234;152364;512634;516234;512364;5612344 解:按照题目要求构造的二叉树如下四、算法设计题由于队列是先进先出,而栈是先进后出,所以只有经过两个栈,即先在第一个栈里先进后出,再经过第二个栈后进先出来实现队列的先进先出。

因此用两个栈模拟一个队列运算就是用一个栈作为输入,而另一个栈作为输出。

当进队列时,总是将数据进入到作为输入的栈中。

在输出时,如果作为输出的栈已空,则从输入栈将已输入到输入栈的所有数据压入输出栈中,然后由输出栈输出数据;如果作为输出的栈不空,则就从输出栈输出数据。

显然,只有在输入、输出栈均为空时队列才为空。

…………………………(写出思想给5分)一个栈s1用来插入元素,另一个栈S2用来删除元素,删除元素时应将前一栈s1中的所有元素读出,然后进入到第二个栈s2中,算法描述如下:Void Enqueue(s1,x)……………………………………………(2分)stack s1;int x;{if(s1->top==0)Printf(“队列上溢“);ElsePush(s1,x);}Void Dequeue(s1,s2,x) ……………………………………………(2分)Stack s1,s2;Int x;{ S->top=0; /将s2清空While (!empty(s1) /将s1的所有元素退栈后压入s2,此时栈s1为空 Push(s2,pop(s1));Pop(s2,x); /弹出栈s2的栈顶元素(对首元素)并赋给xWhile (!empty(s2) /将剩于元素重新压入栈s1恢复为原s1中的顺序 Push(s1,pop(s2));}Int Queue_empty(s1)……………………………………………(1分) Stack s1;{if empty(s1)Return(1);ElseReturn(0);}。

(2013年)专升本十套-数据结构(试题及答案)

(2013年)专升本十套-数据结构(试题及答案)

9.数据结构试卷(一) 一、单选题(每题 2 分,共 20 分) 1. 栈和队列的共同特点是 ( A. 只允许在端点处插入和删除元素 B .都是先进后出C. 都是先进先出D. 没有共同点 用链接方式存储的队列,在进行插入运算时 仅修改头指针 仅修改尾指针)。

2. A. C.3.4.5.6. A7. ( ). 头、尾指针都要修改 头、尾指针可能都要修改 ( ) B. 栈 C. 线性表D. 二叉树B. D. 以下数据结构中哪一个是非线性结构? A. 队列设有一个二维数组 676(10),每个元素占一个空间, 表示。

A .688B . 678 树最适合用来表示 ( )。

A. 有序数据元素 C.元素之间具有分支层次关系的数据 二叉树的第 k 层的结点数最多为 ( ). .2k -1B.2K+1C.2K-1 若有 18 个元素的有序表存放在一维数组A[m][ n],假设 A[0][0]存放位置在 644(io), A[2][2]存放位置在问 A[3][3] (10)存放在什么位置?脚注 (10)表示用 10进制C . 692D .696B.无序数据元素 D .元素之间无联系的数据 D. 2 k-1A[19] 中,第一个元素放 A[1] 中,现进行二 分查找,则查找 A : 3]的比较序列的下标依次为 ( 3 B. 9 , 3 D. 9 , 5, 4, 对 n 个记录的文件进行快速排序,所需要的辅助存储空间大致为 A. 1,2, C. 9,5, )2,3 2,38. A. O (1) B. O ( n ) C. O (1og 2n ) D. O (n2) 9. 对于线性表( 7, 34, 55, 25, 64, 46, 20, 10)进行散列存储时,若选用 H (K ) =K %9 作为散列函数,则散列地址为 1 的元素有(A . 1B .2C .3 10. 设有 6 个结点的无向图,该图至少应有 (A.5B.6C.7D.8 二、填空题(每空 1 分,共 26 分) 1. 2.3. )个, D . 4 )条边才能确保是一个连通图。

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分)请在每小题的空格中填上正确答案。

2013年山东科技大学数据结构与操作系统--真题及参考答案

2013年山东科技大学数据结构与操作系统--真题及参考答案

《数据结构》部分一、简答题(10分,每题5分)1、数据元素之间的关系在计算机中的存储有几种表示方法?各有什么特点?(P6)解:数据元素之间的关系在计算机中有四种不同的表示方法:(1)顺序存储方法。

数据元素顺序存放,每个结点只含有一个元素。

存储位置反映数据元素间的逻辑关系。

存储密度大,但有些操作(如插入、删除)效率较差。

(2)链式存储方法。

每个结点除包含数据元素信息外还包含一组指针。

指针反映数据元素间的逻辑关系。

这种操作不要求存储空间连续,便于进行插入和删除等操作,但存储空间利用率较低。

另外,由于逻辑上相邻的数据元素在存储空间上不一定相邻,所以不能对其进行随机存取。

(3)索引存储方法。

除数据元素存储在一地址连续的内存空间外,尚需建立一个索引表。

索引表中的索引指示结点的存储位置,兼有动态和静态特性。

(4)哈希(或散列)存储方法。

通过哈希函数和解决冲突的方法,将关键字散列在连续的有限的地址空间内,并将哈希函数的值作为该数据元素的存储地址。

其特点是存取速度快,只能按关键字随机存取,不能顺序存储,也不能折半存取。

2、对于堆排序法,快速排序法和归并排序法,若仅从节省存储空间考虑,则应该首先选取其中哪种方法?其次选取哪种方法?若仅考虑排序结果的稳定性,则应该选取其中哪种方法?若仅从平均情况下排序最快这一点考虑,则应该选取其中哪些方法?(P289)答:若只从存储空间考虑,则应首先选取堆排序方法,其次选取快速排序方法,最后选取归并排序方法;若只从排序结果的稳定性考虑,则应选取归并排序方法;若只从平均情况下最快考虑,则应选取快速排序方法;若只从最坏情况下最快并且要节省内存考虑,则应选取堆排序方法。

二、应用题(55分)1、证明:同一棵二叉树的所有叶子结点,在前序序列、中序序列以及后序序列中都按相同的相对位置出现(即先后顺序相同)。

(8分)(例如先序abc,后序bca,中序bac。

)(P128) 答:【答案】先序遍历是“根左右”,中序遍历是“左根右”,后序遍历是“左右根”。

02142数据结构导论2013年10月份真题及答案

02142数据结构导论2013年10月份真题及答案

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

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

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

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

不能答在试题卷上。

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

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

1.下列几种算法时间复杂度中,最大的是A.O(1) B.O(n)C.O(nlog2n)D.O(n2)2.数据结构中结点按逻辑关系依次排列形成一条“链”的结构是A.集合 B.图结构C.树形结构D.线性结构3.在表长为100的顺序表中做插入运算,平均移动元素的次数为A.25 B.33C.50D.1004.已知尾指针的单向循环链表中,在第一个结点后面插入一个新结点,该算法的时间复杂度为A.O(1) B.O(log2n)C.O(n)D.O(n2)5.下列表述正确的是A.栈空时出栈产生“上溢”,栈满时进栈产生“下溢”B.栈空时出栈产生“下溢”,栈满时进栈产生“上溢”C.栈空时出栈和栈满时进栈均产生“上溢”D.栈空时出栈和栈满时进栈均产生“下溢”6.队列操作的原则是A.先进先出B.后进先出C.先进后出D.只进不出7.一棵深度为6的满二叉树有A.63个结点 B.64个结点C.127个结点D.128个结点8.在一棵度为3的树中,度为3的结点有4个,度为2的结点有2个,度为1的结点有3个,则度为0的结点有A.8个B.10个C.11个D.12个9.一棵二叉树T,度为2的结点数为20个,则叶子结点数为A.19个 B.20个C.21个D.22个10.有10个叶结点的哈夫曼树中共有A.10个结点 B.11个结点C.19个结点D.21个结点11.求图中两个结点之间的最短路径采用的算法是A.广度优先搜索(BFS)算法 B.克鲁斯卡尔(Kruskal)算法C.普里姆(Prim)算法D.迪杰斯特拉(Dijkstra)算法12.顺序查找算法的平均查找长度为A.log2n B.(n-1)/2C.n/2D.(n+1)/213.二叉排序树中,根的A.左子树是二叉排序树、右子树不一定是二叉排序树B.左子树是二叉排序树、右子树也是二叉排序树C.左子树不一定是二叉排序树、右子树是二叉排序树D.左子树不一定是二叉排序树、右子树也不一定是二叉排序树14.冒泡排序的时间复杂度为A.O(n) B.O(nlog2n)C.O(n2)D.O(log2n)15.关于稳定性的表述,正确的是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,则算法的时间复杂度为________。

高等教育自学考试--数据结构试题

高等教育自学考试--数据结构试题

高等教育自学考试--数据结构试题首先,数据结构是计算机科学中的重要概念,它涉及到存储和组织数据的方式和方法。

随着信息时代的来临,数据的处理和分析成为各行各业的重要需求,因此,对于计算机专业的学生来说,熟练掌握数据结构的知识是至关重要的。

数据结构试题是高等教育自学考试中的一道重要题目,对于考生来说,合理的备考策略和良好的解题方法可以帮助他们取得更好的成绩。

本文将从以下几个方面探讨如何应对高等教育自学考试中的数据结构试题。

第一,了解试题的考察内容。

数据结构试题不限于某一种具体的数据结构,通常涵盖了线性表、树、图等基本的数据结构知识。

因此,考生在备考时应以教材为基础,逐一复习各种数据结构的概念、特点和操作。

熟练掌握基本的数据结构知识是解题的基础。

第二,深入理解数据结构的原理和应用。

数据结构的设计和应用离不开其背后的理论基础。

考生需要理解数据结构的各种算法和操作的原理,理解其设计和应用的思路。

对于一些常见的数据结构应用问题,考生需要了解其解决方案和实现方法。

掌握这些理论知识将有助于考生在解题过程中快速准确地选择和运用合适的数据结构。

第三,注重实践和思考。

理论知识的掌握是基础,而实践和思考则是巩固知识和提高解题能力的关键。

考生可以通过编写代码、实现数据结构的各种操作,来加深对数据结构的理解和应用。

同时,考生还可以通过解决一些实际的数据结构应用问题,来培养自己的思考和解决问题的能力。

第四,做好试题的分析和解答。

在解答数据结构试题时,考生要先仔细阅读题目,理解题意和要求。

然后,根据题目给出的条件,选择合适的数据结构和算法进行解答。

在解答过程中,要注重代码的规范和效率,对于每一步操作,要进行清晰的注释和解释。

解答完毕后,还需进行测试和调试,确保代码的正确性和可靠性。

最后,对于高等教育自学考试中的数据结构试题,考生需要认真备考,注重理论知识的学习和实践操作的训练,提高解题能力和应对能力。

通过合理的备考策略和良好的解题方法,相信考生能够在考试中取得优异的成绩。

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

全国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==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。

相关文档
最新文档