数据结构 试卷

合集下载

《数据结构》期末考试试卷试题及答案

《数据结构》期末考试试卷试题及答案

《数据结构》期末考试试卷试题及答案第一部分:选择题(每题2分,共20分)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. 下面哪个数据结构用于实现最小树算法?A. 栈B. 队列C. 散列表D. 堆8. 下面哪个数据结构用于实现拓扑排序算法?A. 栈B. 队列C. 散列表D. 堆9. 下面哪个数据结构用于实现最短路径算法?A. 栈B. 队列C. 散列表D. 堆10. 下面哪个数据结构用于实现并查集算法?A. 栈B. 队列C. 散列表D. 堆第二部分:填空题(每题2分,共20分)1. 链表是一种______数据结构。

2. 二叉树的节点最多有______个子节点。

3. 堆是一种特殊的______。

4. 散列表的查找效率取决于______。

5. 图的遍历算法包括______和______。

6. 快速排序算法的平均时间复杂度为______。

7. 哈希表中的冲突解决方法有______和______。

8. 最小树算法包括______和______。

9. 最短路径算法包括______和______。

10. 并查集算法用于解决______问题。

第三部分:简答题(每题10分,共50分)1. 请简述栈和队列的区别。

2. 请简述二叉搜索树的特点。

3. 请简述哈希表的原理。

4. 请简述图的深度优先搜索算法。

5. 请简述最小树算法的原理。

第四部分:编程题(每题20分,共50分)1. 编写一个函数,实现链表的插入操作。

数据结构模拟试卷及参考答案

数据结构模拟试卷及参考答案

数据结构模拟试卷(一)及参考答案一.单项选择题(本大题共15小题,每小题2分,共30分)1.如果只想得到1024个元素组成的序列中的前5个最小元素,那么用( A )方法最快。

A、起泡排序B、快速排序C、堆排序D、直接选择排序2.算法分析的目的是(B)A.辨别数据结构的合理性B.评价算法的效率C.研究算法中输入与输出的关系D.鉴别算法的可读性3.在线性表的下列运算中,不改变数据元素之间结构关系的运算是(C)A.插入B.删除C.定位D.排序4.若进栈序列为1,2,3,4,5,6,且进栈和出栈可以穿插进行,则可能出现的出栈序列为(D)A.3,2,6,1,4,5 B.5,6,4,2,3,1C.1,2,5,3,4,6 D.3,4,2,1,6,55.设串sl=″DataStructureswithJava″,s2=″it″,则子串定位函数index(s1,s2)的值为(A)A.15 B.16 C.17 D.186.一个顺序存储的线性表的第一个元素的存储地址是100,每个元素的长度为4,则第4个元素的存储地址是(B)。

A. 108B. 112C. 116D. 1207.从一个具有n个结点的单链表中查找其值等于x的结点,在查找成功的情况下,平均需要比较(C)个结点。

A. nB. n/2C. (n+1)/2D. (n-1)/28.在任意一棵二叉树的前序序列和后序序列中,各叶子之间的相对次序关系(D)A.不一定相同 B.互为逆序C.都不相同D.都相同9.高度为5的二叉树至多有结点数为(A)A. 63B. 32C. 24D.6410.若用邻接矩阵表示一个有向图,则其中每一列包含的″1″的个数为(B)A.图中每个顶点的出度B.图中每个顶点的入度C.图中弧的条数D.图中连通分量的数目11.图的邻接矩阵表示法适用于表示(C)A.无向图B.有向图C.稠密图D.稀疏图12.在一个单链表中,若p所指的结点不是最后一个结点,在p之后插入s所指的结点,则执行(D)。

算法与数据结构期末考试卷

算法与数据结构期末考试卷

算法与数据结构期末考试卷一、选择题(每题2分,共20分)1. 在数据结构中,线性表的顺序存储结构被称为:A. 链表B. 栈C. 队列D. 数组2. 快速排序算法的时间复杂度在最坏情况下是:A. O(n)B. O(n log n)C. O(n^2)D. O(log n)3. 哈希表解决冲突最常用的方法是:A. 链地址法B. 线性探测法C. 二次探测法D. 双重哈希法4. 二叉树的遍历方式不包括:A. 前序遍历B. 中序遍历C. 后序遍历D. 广度优先遍历5. 堆排序算法是基于:A. 链表B. 栈C. 队列D. 堆...(此处省略其他选择题)二、简答题(每题10分,共20分)1. 请简述二叉搜索树与普通二叉树的区别。

2. 什么是递归?请举例说明递归在算法中的应用。

三、编程题(每题15分,共30分)1. 编写一个函数,实现对链表的反转。

2. 编写一个函数,实现快速排序算法。

四、综合应用题(每题15分,共30分)1. 描述如何使用哈希表实现一个简单的数据库索引系统。

2. 假设你有一个数组,其中包含了一些重复的数值,请编写一个算法来找出数组中出现次数超过数组长度一半的数值。

五、论述题(每题15分,共15分)1. 论述动态规划与贪心算法的区别,并给出一个动态规划问题的例子。

六、附加题(10分,可选做)1. 请设计一个算法,用于检测一个字符串是否是回文。

如果字符串是回文,请返回True,否则返回False。

注意:本试卷中所有题目的答案必须以书面形式给出,编程题需要提供完整的代码实现。

祝各位考生考试顺利,取得优异成绩。

《数据结构》期末考试试卷试题及答案

《数据结构》期末考试试卷试题及答案

《数据结构》期末考试试卷试题及答案一、选择题(每题5分,共20分)1. 下列哪个不是线性结构?A. 栈B. 队列C. 图D. 数组2. 下列哪个不是栈的基本操作?A. 入栈B. 出栈C. 查找D. 判断栈空3. 下列哪个不是队列的基本操作?A. 入队B. 出队C. 查找D. 判断队列空4. 下列哪个不是图的基本概念?A. 顶点B. 边C. 路径D. 环二、填空题(每题5分,共20分)5. 栈是一种______结构的线性表,队列是一种______结构的线性表。

6. 图的顶点集记为V(G),边集记为E(G),则无向图G=(V(G),E(G)),有向图G=(______,______)。

7. 树的根结点的度为______,度为0的结点称为______。

8. 在二叉树中,一个结点的左子结点是指______的结点,右子结点是指______的结点。

三、简答题(每题10分,共30分)9. 简述线性表、栈、队列、图、树、二叉树的基本概念。

10. 简述二叉树的遍历方法。

11. 简述图的存储结构及其特点。

四、算法题(每题15分,共30分)12. 编写一个算法,实现栈的入栈操作。

13. 编写一个算法,实现队列的出队操作。

五、综合题(每题20分,共40分)14. 已知一个无向图G=(V,E),其中V={1,2,3,4,5},E={<1,2>,<1,3>,<2,4>,<3,4>,<4,5>},画出图G,并给出图G的邻接矩阵。

15. 已知一个二叉树,其前序遍历序列为ABDCE,中序遍历序列为DBACE,请画出该二叉树,并给出其后序遍历序列。

答案部分一、选择题答案1. C2. C3. C4. D二、填空题答案5. 后进先出先进先出6. V(G),E(G)7. 0 叶结点8. 左孩子右孩子三、简答题答案9. (1)线性表:一个线性结构,其特点是数据元素之间存在一对一的线性关系。

数据结构期中考试试卷

数据结构期中考试试卷

数据结构期中考试试卷一、选择题(每题2分,共20分)1. 在数据结构中,线性表是按照什么顺序排列的元素集合?A. 任意顺序B. 无序C. 有序D. 线性2. 链表与数组相比,其主要优点是什么?A. 节省空间B. 访问速度快C. 插入和删除操作灵活D. 内存分配简单3. 栈(Stack)是一种遵循什么原则的数据结构?A. 先进先出B. 先进后出C. 后进先出D. 后进后出4. 哈希表解决冲突最常用的方法是?A. 链接法B. 替换法C. 线性探测法D. 二次探测法5. 树和二叉树的主要区别是什么?A. 树的节点数可以比二叉树多B. 树的节点可以有多个子节点C. 树的节点可以没有子节点D. 树的节点可以有左子节点和右子节点6. 什么是二叉搜索树(BST)?A. 所有左子节点的值小于根节点的值B. 所有右子节点的值大于根节点的值C. 所有左子节点的值大于根节点的值D. A和B都正确7. 图的邻接矩阵表示法适用于哪种类型的图?A. 稠密图B. 稀疏图C. 有向图D. 无向图8. 排序算法的时间复杂度为O(n^2)的算法有哪些?A. 选择排序B. 冒泡排序C. 插入排序D. 所有以上9. 什么是递归?A. 函数调用自身B. 函数调用其他函数C. 循环结构D. 条件语句10. 动态规划主要用于解决什么问题?A. 排序问题B. 查找问题C. 优化问题D. 数据存储问题二、简答题(每题5分,共20分)1. 请简述链表和数组的区别。

2. 解释什么是图的深度优先搜索(DFS)。

3. 什么是二叉堆?请简述其性质。

4. 描述快速排序算法的基本思想。

三、编程题(每题15分,共30分)1. 编写一个函数,实现单链表的反转。

2. 编写一个函数,实现二叉树的前序遍历。

四、算法设计题(每题15分,共30分)1. 设计一个算法,用于在无序数组中找到第k小的元素。

2. 设计一个算法,实现最小生成树的克鲁斯卡尔算法。

五、综合应用题(10分)假设你正在开发一个在线图书管理系统,请设计一个数据结构来存储书籍信息,并实现以下功能:- 添加新书- 删除书籍- 查找特定书籍- 列出所有书籍请提供数据结构的设计思路和相应的伪代码。

专升本数据结构试卷答案

专升本数据结构试卷答案

专升本数据结构试卷答案一、选择题(每题 2 分,共 30 分)1、在数据结构中,从逻辑上可以把数据结构分为()。

A 动态结构和静态结构B 紧凑结构和非紧凑结构C 线性结构和非线性结构D 内部结构和外部结构答案:C解析:数据结构从逻辑上分为线性结构和非线性结构。

线性结构是数据元素之间存在一对一的关系,如线性表、栈、队列等;非线性结构是数据元素之间存在一对多或多对多的关系,如树、图等。

2、以下数据结构中,()是非线性数据结构。

A 栈B 队列C 线性表D 二叉树答案:D解析:二叉树是一种非线性数据结构,每个节点最多有两个子节点。

栈、队列和线性表都属于线性数据结构。

3、一个顺序存储的线性表的第一个元素的存储地址是 100,每个元素的长度为 2,则第 5 个元素的地址是()。

A 108B 110C 106D 104答案:A解析:第一个元素地址为 100,每个元素长度为 2,所以第 5 个元素的地址为 100 + 2×(5 1) = 108。

4、在单链表中,增加头结点的目的是()。

A 方便运算的实现B 使单链表至少有一个结点C 标识表结点中首结点的位置D 说明单链表是线性表的链式存储实现答案:A解析:头结点的作用是方便运算的实现,比如在插入和删除操作时,可以避免对第一个元素的特殊处理。

5、设栈的顺序存储空间为 S(1:m),初始状态为 top = 0。

现经过一系列入栈与退栈运算后,top = 20,则当前栈中有()个元素。

A 20B 21C m 20D m 19答案:A解析:栈是一种先进后出的数据结构,top 指向栈顶元素的位置,top = 20 说明当前栈中有 20 个元素。

6、循环队列的存储空间为 Q(1:50),初始状态为 front = rear = 25。

经过一系列入队与退队运算后,front = 15,rear = 10,则循环队列中的元素个数为()。

A 5B 6C 16D 49答案:B解析:循环队列中元素个数的计算公式为:(rear front + 50) % 50。

数据结构与算法试卷自考

数据结构与算法试卷自考一、单选题(每题3分,共30分)1. 在数据结构中,从逻辑上可以把数据结构分成()。

A. 动态结构和静态结构。

B. 紧凑结构和非紧凑结构。

C. 线性结构和非线性结构。

D. 内部结构和外部结构。

2. 线性表的顺序存储结构是一种()的存储结构。

A. 随机存取。

B. 顺序存取。

C. 索引存取。

D. 散列存取。

3. 栈和队列的共同特点是()。

A. 都是先进后出。

B. 都是先进先出。

C. 只允许在端点处插入和删除元素。

D. 没有共同点。

4. 对于一个具有n个顶点的无向图,若采用邻接矩阵表示,则该矩阵的大小是()。

A. n.B. (n - 1)^2.C. n - 1.D. n^2.5. 下面关于二叉树的叙述正确的是()。

A. 一棵二叉树中叶子结点的个数等于度为2的结点个数加1。

B. 二叉树中不存在度大于2的结点。

C. 二叉树的度为2。

D. 二叉树的度为0或1。

6. 具有n个结点的完全二叉树的深度为()。

A. ⌊log₂n⌋ + 1.B. ⌈log₂n⌉ + 1.C. ⌊log₂n⌋.D. ⌈log₂n⌉.7. 对线性表进行二分查找时,要求线性表必须()。

A. 以顺序方式存储。

B. 以链式方式存储。

C. 以顺序方式存储,且结点按关键字有序排列。

D. 以链式方式存储,且结点按关键字有序排列。

8. 排序方法中,从未排序序列中依次取出元素与已排序序列(初始时为空)中的元素进行比较,将其放入已排序序列的正确位置上的方法,称为()。

A. 希尔排序。

B. 冒泡排序。

C. 插入排序。

D. 选择排序。

9. 快速排序在()情况下最不利于发挥其长处。

A. 待排序的数据量太大。

B. 待排序的数据中含有多个相同值。

C. 待排序的数据已基本有序。

D. 待排序的数据数量为奇数。

10. 算法的时间复杂度取决于()。

A. 问题的规模。

B. 待处理数据的初态。

C. 计算机的配置。

D. A和B。

二、填空题(每题3分,共30分)1. 数据的逻辑结构有四种基本类型:集合结构、______结构、树形结构和图状结构。

数据结构试题集(8套卷子+答案)

《数据结构》试卷一一、填空题:(共20分)1、当线性表的元素总数基本稳定,且很少进行插入和删除操作,但要求以最快的速度存取线性表中的元素时,应采用存储结构。

2、队列是限制插入只能在表的一端,而删除在表的另一端进行的线性表,其特点是。

3、在一棵二叉树中,度为0的结点个数为n0,度为2的个数为n2,则n0= 。

4、二叉树的前序遍历序列等同于该二叉树所对应森林的遍历序列5、对一棵二叉排序树,若以遍历该树,将得到一个以关键字递增顺序排列的有序序列。

6、三个结点a,b,c组成二叉树,共有种不同的结构。

7、在AVL树中,由于在A结点的右孩子的右子树上插入结点,使A结点的平衡因子由-1变为-2,使其失去平衡,应采用型平衡旋转。

8、图的遍历有两种,它们是。

9、堆排序的时间复杂度为。

10、在含有N个结点的二叉链表中有空链域,通常用这些空链域存储线索,从而得另一种链式存储结构----线索链表。

二、单项选择题(共20分)1、若进栈序列为1,2,3,4,假定进栈和出栈可以穿插进行,则可能的出栈序列是()(A)2,4,1,3(B)3,1,4,2(C)3,4,1,2(D)1,2,3,42、有一棵非空的二叉树,(第0层为根结点),其第i层上最多有多少个结点?()(A)2i(B)21-i(C)21+i(D) i3、设电文中出现的字母为A,B,C,D,E,每个字母在电文中出现的次数分别为9,27,3,5,11,按huffman编码,则字母A编码为()(A)10(B)110(C)1110(D)11114、下面关于数据结构的叙述中,正确的叙述是()(A)顺序存储方式的优点是存储密度大,且插、删除运算效率高(B)链表中每个结点都恰好包含一个指针(C)包含n个结点的二叉排序树的最大检索长度为logn2(D)将一棵树转为二叉树后,根结点无右子树5、程序段:y:=0while n>=(y+1)*(y+1) doy:=y+1enddo的时间复杂度为()(A)O(n) (B)O(n2) (C)O(n2/1) (D)O(1)6、排序方法中,关键码比较的次数与记录的初始排列无关的是( )(A) shell排序 (B) 归并排序 (C) 直接插入排序 (D) 直接选择排序7、数组q[0..n-1]作为一个环行队列,f 为当前队头元素的前一位置,r为队尾元素的位置,假定队列中元素的个数总小于n,则队列中元素个数为( )(A) r-f (B) n+f-r (C) n+r-f (D) (n+r-f) mod n8、为了有效的利用散列查找技术,需要解决的问题是:( )Ⅰ:找一个好的散列函数Ⅱ:设计有效的解决冲突的方法Ⅲ:用整数表示关键码值(A) Ⅰ和Ⅲ (B) Ⅰ和Ⅱ (C) Ⅱ和Ⅲ (D) Ⅰ,Ⅱ和Ⅲ9、引入线索二叉树的目的是()(A) 加快查找结点的前驱或后继的速度(B) 为了能在二叉树中方便的进行插入与删除(C) :为了能方便的找到双亲(D) 使二叉树的遍历结果唯一10、用二分(折半)查找表的元素的速度比用顺序法()(A) 必然快(B) 必然慢(C): 相等(D): 不能确定三、简答题:(共40分)1、已知某二叉树按中序遍历序列为BFDAEGC,按前序遍历序列为ABDFCEG,试画出该二叉树形状,并写出它的后序遍历序列。

《数据结构与算法》试卷

一、选择题1.下列哪种数据结构适合用于实现优先队列?A.栈B.队列C.二叉堆(正确答案)D.链表2.在进行图的深度优先搜索(DFS)时,使用哪种数据结构可以帮助记录已访问过的顶点,从而避免重复访问?A.栈B.队列C.集合(正确答案)D.哈希表3.下列排序算法中,哪种算法的时间复杂度在最坏情况下为O(n2),但在平均情况下和最好情况下可以达到O(nlogn)?A.快速排序(正确答案)B.归并排序C.堆排序D.插入排序4.在二叉树的遍历中,前序遍历的顺序是?A.根节点-> 左子树-> 右子树(正确答案)B.左子树-> 根节点-> 右子树C.左子树-> 右子树-> 根节点D.根节点-> 右子树-> 左子树5.下列哪种查找算法在有序数组中查找特定元素时,具有最优的时间复杂度O(logn)?A.顺序查找B.二分查找(正确答案)C.插值查找D.斐波那契查找6.在哈希表中,处理哈希冲突的一种常见方法是?A.开放寻址法(正确答案)B.链地址法C.再哈希法D.以上都是7.下列关于二叉搜索树(BST)的说法中,哪一项是正确的?A.在BST中,每个节点的左子树只包含小于该节点的数B.在BST中,每个节点的右子树只包含大于该节点的数C.在BST中,每个节点的左子树只包含小于该节点的数,右子树只包含大于该节点的数(正确答案)D.BST中不允许有重复值的节点8.下列哪种算法是解决最短路径问题的经典算法,适用于带权重的图?A.迪杰斯特拉算法(Dijkstra)(正确答案)B.弗洛伊德算法(Floyd)C.贝尔曼-福特算法(Bellman-Ford)D.A*算法(A-star)。

数据结构试卷试题及答案

数据结构试卷试题及答案一、选择题(每题5分,共40分)1. 数据结构是研究数据元素的()A. 存储结构B. 处理方法C. 逻辑结构D. 所有以上内容答案:D2. 在数据结构中,通常采用()方式来表示数据元素之间的逻辑关系。

A. 顺序存储结构B. 链式存储结构C. 索引存储结构D. 散列存储结构答案:B3. 下面哪一个不是栈的基本操作?()A. 入栈B. 出栈C. 判断栈空D. 获取栈顶元素答案:D4. 下面哪一个不是队列的基本操作?()A. 入队B. 出队C. 判断队列空D. 获取队头元素答案:D5. 下面哪一个不是线性表的特点?()A. 有且只有一个根节点B. 每个节点最多有一个前驱和一个后继C. 数据元素类型相同D. 数据元素类型可以不同答案:D6. 在下列哪种情况中,使用链式存储结构比顺序存储结构更合适?()A. 数据元素经常插入和删除B. 数据元素大小不固定C. 数据元素个数不确定D. 所有以上情况答案:D7. 下面哪一个不是树的遍历方式?()A. 前序遍历B. 中序遍历C. 后序遍历D. 翻转遍历答案:D8. 在下列哪种情况中,使用散列存储结构比其他存储结构更合适?()A. 数据元素个数较少B. 数据元素查找频繁C. 数据元素插入和删除频繁D. 数据元素大小不固定答案:B二、填空题(每题5分,共30分)9. 栈是一种特殊的线性表,它的插入和删除操作都限定在表的一端进行,这一端称为______。

答案:栈顶10. 队列是一种特殊的线性表,它的插入操作在表的一端进行,这一端称为______,而删除操作在另一端进行,这一端称为______。

答案:队尾、队头11. 二叉树中的节点包括______和______。

答案:根节点、子节点12. 在图的存储结构中,邻接矩阵表示法用______个一维数组来表示图中各个顶点之间的关系。

答案:两个13. 散列存储结构中,关键码到存储地址的映射方法称为______。

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

数据结构试卷一、选择题(每题1分)1.循环队列用数组A[0,m-1]存放其元素值,已知其头尾指针分别是front和rear,则当前队列中的元素个数是()。

A.(rear-front+m)%m B.read-front+1 C.read-front-1 D.read-front2.广义表((a,b),c,d)的表头是(),表尾是()。

A.a B.b C.(a,b) D.(c,d)3.将递归算法转换成对应的非递归算法时,通常需要使用()。

A.栈B.队列C.链表D.树4.某二叉树的前序遍历结点访问顺序是abdgcefh,中序遍历的结点访问顺序是dgbaechf,则其后序遍历的结点访问顺序是()。

A.bdgcefha B.gdbecfha C.bdgaechf D.gdbehfca5.按照二叉树的定义,具有3个结点的二叉树有( )种。

A.3 B.4 C.5 D.66.深度为5的二叉树至多有( )个结点。

A.10 B.16 C.31 D.327.在一个具有n个顶点的无向图中,要连通全部顶点至少需要()条边。

A.n B.n+1 C.n-1 D.n/28.有一个有序表为{1,3,9,12,32,41,45,62,75,77,82,95,100},当二分查找值为82的结点时,()次比较后查找成功。

A.1 B.2 C.4 D.89.在待排序的元素序列基本有序的前提下,效率最高的排序方法是()。

A.插入排序B.选择排序C.快速排序D.归并排序10.用某种排序方法对线性表(25,84,21,47,15,27,68,35,20)进行排序时,元素序列的变化情况如下:25,84,21,47,15,27,68,35,2015,84,21,47,25,27,68,35,2015,20,21,47,25,27,68,35,8415,20,21,25,47,27,68,35,84..15,20,21,25,27,35,47,68,84则采用的排序方法是()。

A.选择排序B.快速排序C.归并排序D.冒泡排序二、填空题(每题2分)1.在一个稀疏矩阵中,每个非零元素所对应的三元组包括该元素的____、____和_______ 三项。

2.在一棵三叉树中,度为3的结点数为2个,度为2的结点数有1个,度为1的结点数为2个,那么度为0的结点数有______个。

3.在一个顺序存储的队列Q中,判断队空的条件为__________,判断队满的条件为__________。

4.假定一棵树的广义表表示为A(B(C,D(E,F,G),H(I,J))),则树中所含的结点数为______个,树的深度为_____,树的度为______。

5.一棵二叉树的结点数为18,则它的最小深度为_______,最大深度为_______。

6.对于一棵具有n个结点的二叉树,对应二叉链表中指针总数为______个,其中______个用于指向孩子结点,______个指针空闲着。

7.假定对线性表(38,25,74,52,48)进行散列存储,采用H(K)=K%7作为散列函数,若分别采用线性探测法和链接法处理冲突,则对各自散列表进行查找的平均查找长度分别为____和______。

8.算术表达式a+b/(c-(d-e)) ′f的逆波兰式是______________。

9.设二维数组a[10][10] 是对称阵,现将a中的下三角(含对角线)元素以行为主序存储在首地址为2000的存储区域中,每个元素占3个单元,则元素a[7][6]的地址为________。

10.设有一稀疏图G,则G采用_______________存储较省空间。

三、求解题1.已知序列18,11,17,7,5,13,41,29,37,23,19。

请画出相应的二叉排序树并写出该树的前序、中序和后序序列。

(8分)2.对于线性表F=25,40,20,27,45,50,15,35,17,30,12,按照下面给出的排序方法分别对F进行排序。

请分别给出在各遍结束时线性表的状况。

(10分)(1) 快速排序(2) 归并排序3.假定无向图G有7个结点和12条边,并依次输入这12条边(1,2),(1,3),(1,5),(1,6), (1,7),(2,3),(3,4),(3,5), (3,7),(4,6),(5,6),(5,7).请画出图G的邻接表.并按你所给的邻接表,从结点1出发,分别按深度优先搜索法和广度优先搜索法进行遍历的结点序列. (10分)4.已知权值: 11,17,7,5,13,41,29,37,23,19。

请画出相应的哈夫曼树。

(4分)四、读程填空(每个空格处只填一个语句或表达式)(每个空格2分)1.完成下列排序算法。

typedef struct node{int key;int data;}NODE;void insert(NODE r[ ],int n){ int i,j;for(i=2;i<=n;i++)if ( A ){r[0]=r[i];j=i-1;while ( B )r[j+1]=r[j--];C ;}}2.完成下列将两个递增有序单链表合并成一个递增有序单链表的算法。

typedef struct lnode {elemtype data;struct lnode *next;}lnode,*linklist;linklist meger(linklist pa,linklist pb){ p=pa; q=pb;while ( A )if ( B ) p=p->next ;if (p->next->data==q->next->data){u=q->next; C ;free(u);}else{u=q->next;q->next=u->next;D ; p->next=u;E ;}if (q->next) F ;free(pb);return(pa);}3.完成下列前序遍历二叉树算法。

#define max 100typedef struct tnode{int data;struct tnode *lchild,*rchild;}tnode;typedef struct stack {tnode *elem[max];int top;}stack;void print_tree(tnode *bt){stack s; tnode *p;p=____A____;s.top=0;while (p || s.top){ while ( B ){ printf("%d",p->data);s.elem[s.top++]=p; C ;} if (s.top>0){ D ; E ;}}4.下面的函数在给定的二叉排序树中插入一个新结点。

在插入之前,首先对查找树进行查找,如树中不包含插入的新结点,则进行插入;否则不插入。

typedef struct tnode {char data;struct tnode *lchild,*rchild;}tnode,*bitreptr;bitreprt insert(bitreptr root, char ch){ bitreptr p,q;p=NULL;q=root;while (q && q->data!=ch){ p=q;if( ch<q->data) A ;else B ;}if (!q) {q=(bitreptr)malloc(sizeof(tnode));q->data=ch;q->lchild=q->rchild=NULL;if (!p) C ;else if (ch>p->data) D ;else E ;}return root;}数据结构试卷答案一、选择题1.A2.C D3.A4.D5.C6.C7.C8.C9.A 10.A二、填空题1. 行、列、元素值2. 63. front==rear front==(rear+1)%size4. 10 4 35. 56.2n n-1 n+17. 2 1.48. abcde--/f*+9.2102 10.邻接表三、求解题1.前序:18 11 7 5 17 13 41 29 23 19 37中序:5 7 11 13 17 18 19 23 29 37 41后序:5 7 13 17 11 19 23 37 29 41 182. 快速排序:25 40 20 27 45 50 15 35 17 30 1212 17 20 15 25 50 45 35 27 30 4012 17 20 15 25 40 45 35 27 30 5012 15 17 20 25 30 27 35 40 45 5012 15 17 20 25 27 30 35 40 45 50归并排序:25 40 20 27 45 50 15 35 17 30 1225 40 20 27 45 50 15 35 17 30 1220 25 27 40 15 35 45 50 12 17 3015 20 25 27 35 40 45 50 12 17 3012 15 17 20 25 27 30 35 40 45 503.1-〉2 3 5 6 72-〉1 33-〉1 2 4 5 74-〉3 65-〉1 3 6 76–〉1 4 57–〉1 3 5DFS:1 2 3 4 6 5 7BFS:1 2 3 5 6 7 44.四、程序填空题1. A. r[i].key<r[i-1].key B. r[0].key<r[j].key C.r[j+1]=r[0]2. A. p->next&&q->next B.p->next->data<q->next->data C.q->next=u->nextD. u->next=p->nextE. p=uF.p->next=q->next3. A.bt B.p C.p=p->lchild D.p=s.elem[--s.top] E.p=p->rchild4. A. q=q->lchild B.q=q->rchild C.root=q D.p->rchild=q E. p->lchild=q。

相关文档
最新文档