收藏 分享(赏)

数据结构考试题库含答案.doc

上传人:tangtianxu2 文档编号:2876959 上传时间:2018-09-29 格式:DOC 页数:55 大小:899.50KB
下载 相关 举报
数据结构考试题库含答案.doc_第1页
第1页 / 共55页
数据结构考试题库含答案.doc_第2页
第2页 / 共55页
数据结构考试题库含答案.doc_第3页
第3页 / 共55页
数据结构考试题库含答案.doc_第4页
第4页 / 共55页
数据结构考试题库含答案.doc_第5页
第5页 / 共55页
点击查看更多>>
资源描述

1、数据结构习题集含答案目录目录 1选择题 2第一章绪论 2第二章 线性表 4第三章 栈和队列 5第四章 串 6第五章 数组和广义表 7第六章 树和二叉树 7第七章 图 9第八章 查找 11第九章 排序 12简答题 15第一章绪论 15第二章 线性表 20第三章 栈和队列 22第四章 串 24第五章 数组和广义表 24第六章 树和二叉树 26第七章 图 31第八章 查找 33第九章 排序 34编程题 36第一章绪论 36第二章线性表 36第三章 栈和队列 46第四章 串 46第五章 数组和广义表 46第六章 树和二叉树 46第七章 图 46第八章 查找 46第九章 排序 51选择题第一章绪论1.

2、数据结构这门学科是针对什么问题而产生的?(A )A、针对非数值计算的程序设计问题 B、针对数值计算的程序设计问题C、数值计算与非数值计算的问题都针对 D、两者都不针对2. 数据结构这门学科的研究内容下面选项最准确的是(D )A、研究数据对象和数据之间的关系 B、研究数据对象C、研究数据对象和数据的操作 D、研究数据对象、数据之间的关系和操作3. 某班级的学生成绩表中查得张三同学的各科成绩记录,其中数据结构考了90 分,那么下面关于数据对象、数据元素、数据项描述正确的是(C )A、某班级的学生成绩表是数据元素,90 分是数据项B、某班级的学生成绩表是数据对象,90 分是数据元素C、某班级的学生成

3、绩表是数据对象,90 分是数据项D、某班级的学生成绩表是数据元素,90 分是数据元素4. *数据结构是指(A ) 。A、数据元素的组织形式 B、数据类型C、数据存储结构 D、数据定义5. 数据在计算机存储器内表示时,物理地址与逻辑地址不相同,称之为(C ) 。A、存储结构 B、逻辑结构C、链式存储结构 D、顺序存储结构6. 算法分析的目的是(C )A、找出数据的合理性 B、研究算法中的输入和输出关系C、分析算法效率以求改进 D、分析算法的易懂性和文档型性7. 算法分析的主要方法(A ) 。A、空间复杂度和时间复杂度 B、正确性和简明性C、可读性和文档性 D、数据复杂性和程序复杂性8. 计算机内

4、部处理的基本单元是(B )A、数据 B、数据元素 C、数据项 D、数据库9. 数据在计算机内有链式和顺序两种存储方式,在存储空间使用的灵活性上,链式存储比顺序存储要(B ) 。A、低 B、高 C、相同 D、不好说10. 算法的时间复杂度取决于( C )A 、问题的规模 B、待处理数据的初始状态C、问题的规模和待处理数据的初始状态 D、不好说11. 数据结构既研究数据的逻辑结构,又研究物理结构,这种观点(B ) 。A、正确 B、错误C、前半句对,后半句错 D、前半句错,后半句对12. 在数据结构中,从逻辑上可以把数据结构分成( C )A、动态结构和静态结构 B、紧凑结构和非紧凑结构C、线性结构和

5、非线性结构 D、内部结构和外部结构13. 线性表的顺序存储结构是一种( )的存储结构,线性表的链式存储结构是一种( A )存储结构。A、随机存取 B、顺序存取C、索引存取 D、散列存取14. *下列程序的时间复杂度是(A )for (i=1; i0)个结点的完全二叉树的深度为(C )。 .log2(n) . log2(n) . log2(n) +1 .log2(n)+1 16. 在一棵三元树中度为 3 的结点数为 2 个,度为 2 的结点数为 1 个,度为 1的结点数为 2 个,则度为 0 的结点数为(D )个。 A. 4 B. 5 C.6 D.717. 有关二叉树下列说法正确的是(B ) A

6、二叉树的度为 2 B一棵二叉树的度可以小于2 C二叉树中至少有一个结点的度为 2 D二叉树中任何一个结点的度都为 218. 在完全二叉树中,若一个结点是叶结点,则它没(C ) 。 A左子结点 B右子结点 C左子结点和右子结点 D左子结点,右子结点和兄弟结点19. 在下列情况中,可称为二叉树的是(B ) A每个结点至多有两棵子树的树 B. 哈夫曼树 C每个结点至多有两棵子树的有序树 D. 每个结点只有一棵右子树 第七章 图1. 图的深度优先遍历类似于二叉树的( A ) 。A先序遍历 B中序遍历 C后序遍历 D层次遍历2. 已知一个图如图所示,若从顶点 a 出发按深度优先遍历,则可能得到的一种顶点

7、序列为(C )Aabecdf Bacfebd Caebcfd Daedfcb3. 若从无向图的任意一个顶点出发进行一次深度优先搜索可以访问图中所有的顶点,则该图一定是( B )图。A非连通 B连通 C强连通 D有向4. 在一个图中,所有顶点的度数之和等于所有边数的( C )倍。A 1/2 B 1 C 2 D 35. 在一个有向图中,所有顶点的入度之和等于所有顶点出度之和的( B )倍。A 1/2 B 1 C 2 D 36. 一个有 N 个顶点的有向图最多有( B )条边。A N B N(N-1) C N(n-1)/2 D 2N7. 具有 4 个顶点的无向完全图有( A )条边。A 6 B 12

8、 C 18 D 208. 具有 6 个顶点的无向图至少有( A )条边才能确保是一个连通图。A 5 B 6 C 7 D 89. 对于一个具有 N 个顶点的无向图,若采用邻接矩阵表示,则该矩阵大小是(D )A N B (N-1)2 C N-1 D N*N10. 一个具有 N 个顶点的无向图中,要连通全部顶点至少要( C )条边A N B N+1 C N-1 D N/211. *已知图的邻接矩阵如图所示,则从顶点 0 出发按深度优先遍历的结果是( C ) 。 0101A0 2 4 3 1 5 6 B0 1 3 6 5 4 2 C0 1 3 4 2 5 6 D0 3 6 1 5 4 212. 已知图

9、的邻接表下图所示,则从顶点 0 出发按广度优先遍历的结果是( ) ,按深度优先遍历的结果是( D ) 。A0 1 3 2 B0 2 3 1 C0 3 2 1 D0 1 2 313. 已知图的邻接表下图所示,则从顶点 0 出发按广度优先遍历的结果是( ) ,按深度优先遍历的结果是( ) 。A0 1 3 2 B0 2 3 1 C0 3 2 1 D0 1 2 314. 当在一个有序的顺序表上查找一个数据时,既可用折半查找,也可用顺序查找,但前者比后者的查找速度( C ) 。 A必定快 B不一定 C在大部分情况下要快 D取决于表递增还是递减15. 折半查找有序表(4 , 6,10 ,12,20,30

10、,50,70,88,100) 。若查找表中元素 58,则它将依次与表中( A )比较大小,查找结果是失败。A20,70,30,50 B30,88,70,50 C20,50 D30,88,50第八章 查找1. 顺序查找法适合于存储结构为(B )的线性表。A散列存储 B顺序存储或链式存储 C压缩存储 D索引存储2. 在查找过程中,若同时还要增、删工作,这种查找称为( B ) 。A、 静态查找 B、 动态查找 C、 内查找 D、 外查找3. 索引顺序表的特点是顺序表中的数据( A ) 。A、 有序 B、 无序 C、 块间有序 D、 散列4. 采用顺序查找方法查找长度为 n 的线性表时,每个元素的平均

11、查找长度为(C)A、 n B、n/2 C、(n+1)/2 D、(n-1)/25. *将 10 个元素散列到 1000000 个单元的哈希表,则( C )产生冲突。A、 一定会 B、一定不会 C、仍可能会 D、以上都不对6. *散列表的地址区间为 016,散列函数 H(k)=k%17,采用线性探测法解决地址冲突,将关键字 26、 25、72、38、1、18、59 依次存储到散列表中。元素 59 存放在散列表中的地址为( A )A、 8 B、 9 C、 10 D、 117. 设有序表的关键字序列为1,3,9,12,32,41,45,62,75,77,82,95,100,当采用二分查找法查找值为 8

12、2 的节点时,经( C )次比较后查找成功。A、 1 B、 2 C、 3 D、 48. 设有 100 个元素,用折半查找法进行查找时,最大、最小比较次数分别时( A )A、 7,1 B、6,1 C、5,1 D、8,1第九章 排序1. 对 n 个不同的记录按排序码值从小到大次序重新排列,用冒泡(起泡) 排序方法,初始序列在 (A ) 情况下,与排序码值总比较次数最少。A按排序码值从小到大排列 B按排序码值从大到小排列C随机排列(完全无序) D基本按排序码值升序排列2. 对 n 个不同的记录按排序码值从小到大次序重新排列,用冒泡(起泡) 排序方法,在 (B) 情况下,与排序码值总比较次数最多。A按

13、排序码值从小到大排列 B按排序码值从大到小排列C随机排列(完全无序) D基本按排序码值升序排列3. 对 n 个不同的记录按排序码值从小到大次序重新排列,用直接插入排序方法,初始序列在 (A) 情况下,与排序码值总比较次数最少。A按排序码值从小到大排列 B按排序码值从大到小排列C随机排列(完全无序) D基本按排序码值升序排列4. 对 n 个不同的记录按排序码值从小到大次序重新排列,用直接插入排序方法,初始序列在 (B) 情况下,与排序码值总比较次数最多。A按排序码值从小到大排列 B按排序码值从大到小排列C随机排列(完全无序) D基本按排序码值升序排列5. 对 n 个不同的记录按排序码值从小到大次

14、序重新排列,用快速排序方法在 (C) 情况下,与排序码值总比较次数最少。A按排序码值从小到大排列 B按排序码值从大到小排列C随机排列(完全无序) D基本按排序码值升序排列6. 对 n 个不同的记录按排序码值从小到大次序重新排列,用快速排序方法,在 (A) 情况下与排序码值总比较次数最多。A按排序码值从小到大排列 B按排序码值从大到小排列C随机排列(完全无序) D基本按排序码值升序排列7. 用冒泡排序方法对 n 个记录按排序码值从小到大排序时,当初始序列是按排序码值从大到小排列时,与码值总比较次数是 (D ) 。An-1 Bn Cn+1 Dn(n-1)28. 下列排序方法中,与排序码值总比较次数

15、与待排序记录的初始序列排列状态无关的是 (D) 。A直接插入排序 B冒泡排序 C快速排序 D直接选择排序9. 将 6 个不同的整数进行排序,至少需要比较 (A) 次。A5 B6 C15 D2110. 将 6 个不同的整数进行排序,至多需要比较 (C) 次。A5 B6 C15 D2111. *若需要时间复杂度在 O(nlog2n)内,对整数数组进行排序,且要求排序方法是稳定的,则可选择的排序方法是 (B) 。A快速排序 B归并排序 C堆排序 D直接插入排序12. 当待排序的整数是有序序列时,采用 (B) 方法比较好,其时间复杂度为O(n)。A快速排序 B冒泡排序 C归并排序 D直接选择排序13.

16、 当待排序的整数是有序序列时,采用 (A)方法比较差,达到最坏情况下时间复杂度为 O(n2)。A快速排序 B冒泡排序 C归并排序 D直接选择排序14. 当待排序的整数是有序序列时,无论待排序序列排列是否有序,采用 (D)方法的时间复杂度都是 O(n2)。A快速排序 B冒泡排序 C归并排序 D直接选择排序15. *堆是一种 (B) 排序。A插入 B选择 C交换 D归并16. *若一组记录的排序码值序列为40,80 ,50 ,30,60,70,利用堆排序方法进行排序,初建的大顶堆是 (D ) 。A80,40,50,30,60,70 B80,70,60,50,40,30C80,70,50,40,30

17、,60 D80,60,70,30,40,5017. 若一组记录的排序码值序列为50,80,30,40,70 ,60 利用快速排序方法,以第一个记录为基准,得到一趟快速排序的结果为(B ) 。A30,40,50,60,70,80 B40,30,50,80,70,60C50,30,40,70,60,80 D40,50,30,70,60,8018. *下列几种排序方法中要求辅助空间最大的是(C ) 。A堆排序 B直接选择排序 C归并排序 D快速排序19. 已知 Am中每个数组元素距其最终位置不远,采用下列 (A) 排序方法最节省时间。A直接插入 B堆 C快速 D直接选择20. *设有 10000 个

18、互不相等的无序整数,若仅要求找出其中前 10 个最大整数,最好采用 (B) 排序方法。A归并 B堆 C快速 D直接选择21. *在下列排序方法中不需要对排序码值进行比较就能进行排序的是 (A) 。A:基数排序 B快速排序 C直接插入排序 D堆排序22. *给定排序码值序列为F,B,J,C,E ,A,I ,D ,C,H,对其按字母的字典序列的次序进行排列,希尔(Shell)排序的第一趟(d1=5)结果应为(D ) 。AB,F,C,J,A,E,D,I,C,HBC,B,D,A,E,F,I,C,J,HCB,F,C,E,A,I,D,C,H,JDA,B,D,C,E,F,I,J,C,H23. 给定排序码值序

19、列为F,B,J,C,E,A ,I,D,C,H ,对其按字母的字典序列的次序进行排列,冒泡排序(大数下沉)的第一趟排序结果应为(C ) 。AB,F,C,J,A,E,D,I,C,HBC,B,D,A,E,F,I,C,J,HCB,F,C,E,A,I,D,C,H,JDA,B,D,C,E,F,I,J,C,H24. 给定排序码值序列为F,B,J,C,E,A ,I,D,C,H ,对其按字母的字典序列的次序进行排列,快速排序的第一趟排序结果为(B ) 。AB,F,C,J,A,E,D,I,C,HBC,B,D,A,E,F,I,C,J,HCB,F,C,E,A,I,D,C,H,JDA,B,D,C,E,F,I,J,C,H

20、25. *给定排序码值序列为F,B,J,C,E ,A,I ,D ,C,H,对其按字母的字典序列的次序进行排列,二路归并排序的第一趟排序结果是(A ) 。AB,F,C,J,A,E,D,I,C,HBC,B,D,A,E,F,I,C,J,HCB,F,C,E,A,I,D,C,H,JDA,B,D,C,E,F,I,J,C,H简答题第一章绪论1. 请分别给出数据、数据对象、数据元素、数据项的含义,并说明四者的关系。数据(Data):是对信息的一种符号表示。在计算机科学中是指所有能输入到计算机中并能被计算机程序处理的符号的总称。 (一个得分点)数据元素(Data Element):是数据的基本单位,在计算机程序

21、中通常作为一个整体进行考虑和处理,相当于表中的一条记录。 (一个得分点)数据项:相当于记录的“域”, 是数据的不可分割的最小单位,如学号(一个得分点)数据对象:性质相同的数据元素的集合,是数据的一个子集.例如: 同一个班的所有学生记录集合。 (一个得分点)关系:包含关系:数据泛指所有。数据对象是数据的一个子集,由数据元素组成,数据元素是由数据项组成。 (一个得分点)评分标准,总共 5 个得分点,每段话一个得分。2. 请给出数据的逻辑结构的含义,并举例说明数据的逻辑结构通常有哪些。数据的逻辑结构:指数据元素之间的逻辑关系。即用自然语言描述数据,它与数据的存储无关,是独立于计算机的,逻辑结构有四种

22、。 (一个得分点)集合结构: 仅同属一个集合(结构名字 0.5 个得分点、举例 0.5 得分点)线性结构: 一对一(1:1) (结构名字 0.5 个得分点、举例 0.5 得分点)树 结 构: 一对多(1:n) (结构名字 0.5 个得分点、举例 0.5 得分点)图 结 构: 多对多 (m:n) (结构名字 0.5 个得分点、举例 0.5 得分点)评分标准:每段话一个得分点,总共 5 个得分点。什么是数据的物理结构?有哪些物理结构?数据的物理结构与逻辑结构有什么区别与联系?数据的物理结构:物理结构亦称存储结构,是数据的逻辑结构在计算机存储器内的表示(或映像) 。它依赖于计算机。 (一个得分点)存

23、储结构可分为 4 大类:顺序、链式、索引、散列。 (共 2 个得分点,一个 0.5 得分点)区别:数据的逻辑结构属于用户视图,是面向问题的,数据的存储结构属于具体实现的视图,是面向计算机的。 (一个得分点)联系:一种数据的逻辑结构可以用多种存储结构来存储,而采用不同的存储结构其处理的效率往往不同。 (一个得分点)评分标准:共 5 个得分点,按照每段话各自标注的得分点进行评分。3. 求两个正整数 m,n 中的最大数 MAX 的算法(1)若 m n 则 max=m(2)若 m = n 则 max=n 请根据上述算法解释一下算法的组成要素有哪些,分别是什么。算法由操作、控制结构、数据结构 3 要素组

24、成操作包含:算术运算、关系比较、逻辑运算、数据传送(输入、输出、赋值) (一个得分点)例子中有关系比较和赋值计算的操作。 (一个得分点)控制结构包含:顺序结构、选择结构、循环结构(一个得分点)例子中有选择结构(一个得分点)数据结构:算法操作的对象是数据,数据间的逻辑关系、数据的存储方式及处理方式就是数据结构。 (一个得分点)本例是数值问题,涉及到两个正整数,因此使用基本的整数类型就可以解决问题。 (一个得分点)评分标准:本题共 6 个得分点,每段话一个得分点。4. 简述算法的基本性质1)输入:0 个或多个输入2)输出:1 个或多个输出3)有穷性:算法必须在有限步内结束4)确定性:组成算法的操作

25、必须清晰无二义性5)可行性:组成算法的操作必须能够在计算机上实现评分标准,本题共 5 个得分点,每个要点一分。5. 简述算法的设计要求1、正确性(correctness)2、可读性(readability)3、健壮性(robustness)4、通用性(generality )5、效率与存储的要求(执行算法所耗费的存储空间、执行算法所耗费的时间)评分标准,本题共 5 个得分点,每个要点一分。6. 评价算法好坏的 3 条主要标准1)算法实现所耗费的时间。2)算法实现所耗费的存储空间,其中主要考虑辅助存储空间。3)算法应易于理解、易于编码、易于调试等。评分标准,本题共 3 个得分点,每个要点一分。7

26、. 请简述数据结构所研究的三种基本结构,以及数据元素间的关系。线性结构:数据元素之间一对一的关系。 (2 分)树形结构:数据元素之间一对多的关系。 (1.5 分)图形结构:数据元素之间多对多的关系。 (1.5 分)8. 请问算法的分析和评价的两个标准,以及各自作用。时间复杂度:评估算法运行所需时间。 (1.5+1 分)空间复杂度:评估算法运行时所需最大存储空间。 (1.5+1 分)9. 请说出三种逻辑数据结构,以及他们的特点。 (5 分)(1)线性结构:数据元素只有一个前驱数据元素和一个后继数据元素。 (2 分)(2)树结构:每个数据元素只有一个前驱数据元素,可有零个或若干个后继数据元素。(1

27、.5 分)(3)图结构:每个数据元素可有零个或若干个前驱数据元素,零个或若干个后继数据元素。 (1.5 分)10. 评价算法的主要标准是什么?(1)算法实现所耗费的时间(2 分)(2)算法实现所耗费的存储空间,其中主要考虑辅助存储空间。 (2 分)(3)算法应易于理解、易于编码、易于调试。 (1 分)11. 请说出三种逻辑数据结构,并分别画图表示它们。(a, 2 分,b,c 各 1.5 分)12. 算法的基本性质有哪些?并简述每个特性。(5 分)(1)有穷性. . . . . (1 分)(2)确定性. . . . . (1 分)(3)可行性. . . . . (1 分)(4)输入性. . .

28、. . (1 分)(5)输出性. . . . . (1 分)13. 通常从那几个方面来评价算法的质量? (5 分)通常从四个方面评价算法的质量:正确性、可读性、健壮性和高效性。 (少一个扣 1 分)14. 请描述线性数据结构的两种存储方式,并说出其各有什么特点。顺序存储:连续存储,易于定位,不易于插入和删除。 (1+1.5 分)链式存储:非连续存储,不易于定位,易于插入和删除。 (1+1.5 分)15. 请问算法的分析和评价的两种方法,它们关注点各有什么不同?(简单)空间效率:关注算法对内存的占用度。 (1+1.5 分)时间效率:关注算法的运算速度。 (1+1.5 分)第二章 线性表1. 请问

29、如果要插入一个数据到一个线性表中,顺序表和链表哪个的效率高?为什么?链表的效率高(2 分) ,因为顺序表要移动插入位置后的每一个元素的位置给新数据腾位置(1.5 分) 。链表只需要将前一个数据的指针指向新数据并将新数据的指针指向后一个数据即可(1.5 分) 。2. 线性表有哪些特点?1)除第一个和最后一个数据元素外,每个数据元素只有一个前驱数据元素和一个后继数据元素;(2 分)2)第一个数据元素没有前驱数据元素;(1.5 分)3)最后一个数据元素没有后继数据元素。 (1.5 分)3. 顺序存储结构的优缺点有哪些? (中等)顺序存储结构的优点:(2.5 分)存储空间连续逻辑相邻,物理相邻可随机存

30、取任一元素缺点:(2.5 分)插入、删除操作需要移动大量的元素预先分配空间需按最大空间分配,利用不充分表容量难以扩充4. 单链式存储结构的优缺点有哪些? (中等)单链式存储结构的优点:(2.5 分)不需预先分配空间,空间利用充分插入、删除操作简单, 无需移动大量的元素表容量易于扩充缺点:(2.5 分)每个数据元素,除存储本身信息外,还需空间存储其直接后继的信息逻辑相邻,物理不一定相邻不可随机存取任一元素, 只能从链表头依次查找.5. 有顺序表 A=(a0, a1, a2,.a8,a9,a19),要在 a8,a9 之间插入一个元素a20,请描述其操作 (思想)步骤。(中等)插入思想或步骤:根据顺

31、序表的存储特点,要在表中某位置 10 插入一新数据元素,则要进行如下两步操作:(1) 、从位置 10 到表尾位置的所有数据元素均要从后至前依次向后移一个存储位置,为新插入结点腾出第 10 个位置。 (2 分)(2) 、将新结点插入到空余位置 10 处。2 分) (3)表长度加 1. (1 分)6. 有顺序表 A=(a0, a1, a2,.a8,a9,a19),要删除一个元素 a9,请描述其操作( 思想 )步骤。 (中等)(1)然后将从位置 11 到表尾的所有数据元素依次向前移一个存储位置。 (3 分)(2)表长度减 1. (2 分)7. 请描述在顺序表中第 i 个位置插入新的数据 x 操作过程

32、。根据顺序表的存储特点,要在表中某位置 i 插入一新数据元素,则要进行如下两步操作:(1)从位置 i 到表尾位置的所有数据元素均要从后至前依次向后移一个存储位置,为新插入结点腾出第 i 个位置;( 2 分)(2)将新数据 x 插入到空余位置 i 处。 (2 分)(3)表长度加 1. (1 分)8. 请描述在顺序表中删除第 i 个位置的数据的过程。(1)然后将从位置 i 到表尾的所有数据元素依次向前移一个存储位置。 (3 分)(2)表长度减 1. (2 分)9. 请描述在一个单链表中插入一个数据 q 的插入过程。(1)找到将插入数据位置的前一个结点 p; (1 分)(2)q 的 next 值等于

33、 p 的 next 值; (2 分)(3)p 的 next 值等于 q;(2 分)10. 请描述从一个单链表中删除一个数据的删除过程。(1)找到将被删除数据的前一个结点 p; (2 分)(2)p 的 next 指针指向被删除数据的后一个结点;(2 分)(3)将被删除数据原来的 next 指针指向 null; (1 分)第三章 栈和队列1. 请简述线性表、栈和队列三者之间的联系。 (简单)(1 ) 线性表、栈和队列都属于线性结构。 (2 分)(2 ) 栈和队列都是特殊的线性表,并且都有顺序存储、链式存储两种存储方式。 (1分)(3 ) 栈是一种先进后出的线性表,队列是一种先进先出的线性表(2 分

34、)2. 在计算机进行运算时,需要把十进制转换为二进制。请问答:这种数制转换可以借助于哪种数据结构实现、及原因。答: 栈。 ( 2 分)原因:(3 分)在进行数值转换时,其实质是求余的过程,并且余数的倒序序列正是所求结果。栈是一种先进后出的线性结构,能够满足这种操作。3. 有一字符序列 abcde 依次按照某一线性结构存储,请回答以下问题:(1) 、如果该线性结构是队列,那么,写出出队序列。(2) 、如果该线性结构是栈,那么,输出序列可能是 d,c,e,a,b 吗,为什么?(3) 、如果该线性结构是栈,且输出序列是 abcde。请写出操作过程。 (push (x):表示把 x 压入栈内;pop

35、(x):表示把 x 弹出栈)答:(1 ) 、abcde( 1 分)(2 ) 、不可能,因为:d 是第一出栈字符,说明 a,b 已别压入栈内;并且压入栈的次序为 abcde;由以上得出: ab 出栈的顺序只能是 b、a ,而不是 a、b。所以,出栈序列d,c,e,a,b 是不可能的。 (2 分)(3 ) 、 (2 分)push (a),pop (a)push (b),pop (b)push (c),pop (c )push (d),pop (d)push (e),pop (e)4. 简述栈和队列的异同点。相同点:栈和队列都是只允许在表的端点处进行插入、删除操作的线性表。 (2 分)不同点:栈的特

36、点是先进后出,队列的特点是后进先出。 (3 分)5. 若依次读入数据元素序列 1、2 、3,进栈的过程中允许出栈,试写出各种可能的出栈序列。答:123、132、 213、231、321(各 1 分)6. 如果入栈序列有组成, 请问输出序列可能有哪些 ? (较难)输出序列有 5 种:C B A, B C A, B A C, A C B , A B C(各 1 分)7. 如果有 abcde 五个数据依次全部存入,如果采用队列和栈来进行存储,依次取出分别将获得什么内容。 (简单)队列:abcde (2.5 分)栈: edcba (2.5 分)8. 设将整数 1,2,3,4 依次进栈,能否得到 142

37、3 出栈序列和 1432?并说明为什么不能得到或者如何得到。 (中等)不能得到 1423,但可以得到 1432(2 分)因为要得到 4 必须将所有数据入栈,这样将只能依次获取到 1432 不能获得 1423。采用push、pop、push、push、push、pop、pop、pop 可以获得 1432。 (3 分)9. 循环队列的优点是什么?如何判断它的空和满?(可不考)循环队列的优点是可以克服顺序队列的“假上溢“现象,能够使存储队列的向量空间得到充分的利用。 (3 分)采用牺牲一个元素空间的方法,循环队列队空的条件是front=rear,循环队列队满的条件是:(rear+1)%M=front

38、。 (2 分)第四章 串1. 对于字符串 S=abcde,请问:(简单)(1)字符串 S 的长度是多少?(2)字符串 S 的子串有几个,并列出所有子串?答:(1) 、5 (1 分)(2) 、16, (1 分)所有字串: a、 b、 c、 d、 e、 ab 、 bc 、 cd 、 de、 abc、 bcd、 cde 、 abcd 、 bcde 、 abcde 、。 (3 分)2. 对于字符串 S=12345,请问:(简单)(1)字符串 S 的长度是多少?(2)字符串 S 的子串有几个,并列出所有子串?答:(1) 、5 (1 分)(2) 、16, (1 分)所有字串: 1、 2、 3、 4、 5、

39、 12 、 23 、 34 、 45、 123、 234、 345 、 1234 、 2345 、 12345 、。 (3 分)3. 请问答:什么串的模式匹配?模式匹配算法有几种?(简单)答:串的模式匹配是指子串的定位运算,即在主串中查找子串第一次出现的位置。 模式匹配算法有两种:简单匹配算法(Brute-Force)、KMP 算法。(该题共 4 个得分点,答对串匹配定义或大意基本相同,得 2 分;答对两种匹配算,得 2 分,答错或少答一个 扣 1 分)第五章 数组和广义表1. 在数据结构中,数组是最基本的结构,请完成以下要求:(1) 、定义一个能容纳 5 个整型元素的数组 iAry,且元素的

40、值为 10、20、30、40、50 。 (2) 、*画出数组 iAry 的顺序存储结构。 (规定:整型长度为两个字节)(1) 、int iAry5= 10、20、30、40、50 (2 分)(2) 、如下图:(3 分,根据情况,酌情扣分)2. 简述数组的定义、特点和分类。 (简单)定义:数组是 n 个相同数据类型的数据元素 a0,a1,a2,.,an-1 构成的有限集合。 (1 个得分点)特点:1)数组中各元素具有统一的类型;(1 个得分点)2)数组元素的下标一般具有固定的上界和下界,即数组一旦被定义,它的维数和维界就不再改变。 (1 个得分点)3 数组的基本操作比较简单,除了结构的初始化和销

41、毁之外,只有存取元素和修改元素值的操作。 (1 个得分点)分类:按维度可分为一维数组、二维数组、多维数组(1 个得分点)3. 已知一个二维数组 A 如下所示。 (较难)(1)请按照行优先、列优先的方式进行顺序存储,给出顺序存储的序列(2 个得分点)行优先:a11a12a13a21a22a23列优先:a11a21a12a22a13a23(2)若 a11 在内存中存储的地址为 ,每个元素的存储空间大小为 L,则按照行优先的方式和列优先的方式分别存储,其中 a22 的地址 loc(a22)分别为多少(2 个得分点)行优先:loc(a22)=+4L列优先:loc(a22)=+3L(3)对于数组,除了顺

42、序存储外,还有没有其他存储方式?没有填无,若有,请说明。有,链式存储,如下图所示(1 个得分点)第六章 树和二叉树1. 有一树,如下图所示: (简单)请回答以下问题:(1 )树的叶子结点及其度。(2)非终端结点及其度。(3 )树的深度。答: (1 ) 、叶子结点有:D 、E、F 、G ,它们的度都为零。 (2 分)(2) 、非终端结点有:A 度为 3,B 度为 2,C 度为 1。 (2 分)(3 ) 、树的深度为 3。 (1 分)2. 请回答:树与二叉树有什么区别?(中等)答:区别有两点:(1)二叉树的一个结点至多有两个子树,树则不然。 (2.5 分)(2)二叉树一个结点的子树有左右之分,而树

43、的子树没有次序。 (2.5 分)3. 有一棵具有 n 个结点的满二叉树。请问:该满二叉树的叶子结点数目是多少,并写出分析推理过程。 (中等)答:(n+1)/2。 (2 分)分析过程:满二叉树中只有度为 2 和度为 0 的结点,故设叶子结点数目为:n0 ,度为2结点数目为:n2 。又由于 n0= n2+1,n= n2+n0 ,所以可得出:n0=(n+1)/2 。 (3 分)4. 有一棵二叉树,如下图所示:(简单)请问答以下问题:(1) 、用先序遍历法遍历该二叉树,则遍历结果是什么?(2) 、用中序遍历法遍历该二叉树,则遍历结果是什么?(3) 、用后序遍历法遍历该二叉树,则遍历结果是什么?答:(1

44、) 、A B D C E F (2) 、D B A E C F(3) 、D B E F C A (错一个扣 1.5 分)5. 请问如下二叉树,如果采用前序中序后序遍历结果是什么?(中等)前序:ABDECF;中序:DBEAFC;后序:DEBFCA;(错一个扣 1.5 分)6. 有如下一颗树其前序中序后序遍历结果是什么? (中等)其前序遍历结果是:A B D G C E F 其中序遍历结果是:D G B A E C F其后序遍历结果是:G D B E F C A (错一个扣 1.5 分)7. 假定用于通信的电文由 8 个字符 A、B 、C、D、E、F、G、H 组成,各字母在电文中出现概率为 5、2

45、5、4、7、9、12、30、8。现在把字符出现概率扩大 100 倍后,作为这 8 个字母对应的权值(5,25,4,7 ,9 ,12,30 ,8) 。以这些权值构成的霍夫曼树,如下图所示:请问答以下问题:(中等)(1) 、参考霍夫曼树,给字符 A、B、C、D、E、F、G、H 进行编码。 (写出这 8 个字符的霍夫曼编码)(2) 、如果发送的电文信息为“HECDB” ,那么,发送的数据是什么。 (或者说发送的编码序列是什么)答:(1) 、A:0011,B:01,C:0010, D:1010,E:000, F:100,G:11,H:1011 (3 分)(2) 、1011 000 0010 1010

46、01 (2 分)8. 请简述满二叉树、完全二叉树的联系。答:(1) 、它们都是特殊的二叉树,遵循着二叉树的性质。 (2.5 分)(2) 、满二叉树是指每一层 结点数都达到了最大值,所有叶子结点均在最大层上;而完全二叉树是遵循着满二叉树结点编号序列规律的一种树。 (2.5 分)9. 如下是一颗树.请问度为 2 的节点有哪些?度为 3 的节点有哪些?这颗树的度为多少?树的深度是几? ( 中等)答:度为 2 的节点有 B,E;(1.5 分) 度为 3 的节点有 A, D;(1.5 分) 这颗树的度为4,(1 分) 树的深度是 4.(1 分)10. 请画出深度为 4 的满二叉树 (较难)11. 请画出深度为 4 的完全二叉树 (较难)12. 给定一组权值6,2,3,9,6 根据哈夫曼算法构造哈夫曼树. (难)1) 将 6、2、3、9、6 看成是有 5 棵树的森林( 每棵树仅有一个结点 );2) 在森林中选出两个根结点的权值最小的 2,3 树合并,作为一棵新树的左、右子树,且新树的根结点权值为其左、右子树根结点权值之和 5;从森林中删除选取的两棵树,并将新树加入森林;

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 专业基础教材

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报