数据结构第10章 习题答案

合集下载

数据结构第十章习题课

数据结构第十章习题课

1.下列排序算法中,其中()是稳定的。

A. 堆排序,冒泡排序B. 快速排序,堆排序C. 直接选择排序,归并排序D. 归并排序,冒泡排序2.若需在O(nlog2n)的时间内完成对数组的排序,且要求排序是稳定的,则可选择的排序方法是()。

A. 快速排序B. 堆排序C. 归并排序D. 直接插入排序3.排序趟数与序列的原始状态有关的排序方法是( )排序法。

A.插入 B. 选择 C. 冒泡 D. 快速4.对一组数据(84,47,25,15,21)排序,数据的排列次序在排序的过程中的变化为(1)84 47 25 15 21 (2)15 47 25 84 21 (3)15 21 25 84 47 (4)15 21 25 47 84 则采用的排序是( )。

A. 选择B. 冒泡C. 快速D. 插入5.对序列{15,9,7,8,20,-1,4}进行排序,进行一趟后数据的排列变为{4,9,-1,8,20,7,15};则采用的是()排序。

A. 选择B. 快速C. 希尔D. 冒泡6.若上题的数据经一趟排序后的排列为{9,15,7,8,20,-1,4},则采用的是()排序。

A.选择 B. 堆 C. 直接插入 D. 冒泡7.在文件“局部有序”或文件长度较小的情况下,最佳内部排序的方法是()A.直接插入排序B.冒泡排序C.简单选择排序8.下列排序算法中,()算法可能会出现下面情况:在最后一趟开始之前,所有元素都不在其最终的位置上。

A. 堆排序B. 冒泡排序C. 快速排序D. 插入排序9. 下列排序算法中,占用辅助空间最多的是:( )A. 归并排序B. 快速排序C. 希尔排序D. 堆排序10.用直接插入排序方法对下面四个序列进行排序(由小到大),元素比较次数最少的是()。

A.94,32,40,90,80,46,21,69 B.32,40,21,46,69,94,90,80C.21,32,46,40,80,69,90,94 D.90,69,80,46,21,32,94,4011. 若用冒泡排序方法对序列{10,14,26,29,41,52}从大到小排序,需进行()次比较。

华南理工大学网络教育学院 数据结构同步练习册答案

华南理工大学网络教育学院  数据结构同步练习册答案

6.3 分别写出题 6.1 所示二叉树的先根,中根和后根序列。 答:先根:ABCDEFGHIJ 二叉树。 答: 由后根遍历序列得到二叉树的根结点 A (后根序列中最后一个结点) ; 在中序序列中, A 的左力是 A 的左子树上的结点,A 的右边是 A 的右子树上的结点;再到后根序列中找左子 树和右子树的根结点,依次类推,直到画出该二叉树。 中根:DCBAFEHJIG 后根:DCBFJIHGEA 6.4 已知一棵二叉树的中根序列和后根序列分别为 BDCEAFHG 和 DECBHGFA,试画出这棵
(4) int x = 91, y = 100;
while (y > 0) { if (x > 100) else x++; } 答:100 解析: x=91; //1 y=100; //1
{
x = x -10; y--;
}
while(y>0) //1101 if(x>100) //1100 { x=x-10; //100 y--; //100 } else x++; //1000 以上程序段右侧列出了执行次数。该程序段的执行时间为: T(n)=O(1)
while ( i <= n ) { k = k+10*i; i++; } 答:n-1
解析: i=1; //1 k=0; //1 while(i<n) //n { k=k+10*i; //n-1 i++; //n-1 } 由以上列出的各语句的频度,可得该程序段的时间消耗: T(n)=1+1+n+(n-1)+(n-1)=3n 可表示为 T(n)=O(n)
x++; y++;

数据结构答案 第10章 排序学习与指导

数据结构答案 第10章 排序学习与指导

第10章排序10.1 知识点分析1.排序基本概念:(1)排序将数据元素的任意序列,重新排列成一个按关键字有序(递增或递减)的序列的过程称为排序。

(2)排序方法的稳定和不稳定若对任意的数据元素序列,使用某个排序方法,对它按关键字进行排序,若对原先具有相同键值元素间的位置关系,排序前与排序后保持一致,称此排序方法是稳定的;反之,则称为不稳定的。

(3)内排序整个排序过程都在内存进行的排序称为内排序,本书仅讨论内排序。

(4)外排序待排序的数据元素量大,以致内存一次不能容纳全部记录,在排序过程中需要对外存进行访问的排序称为外排序。

2.直接插入排序直接插入排序法是将一个记录插到已排序好的有序表中,从而得到一个新的,记录数增1的有序表。

3.二分插入排序二分插入排序法是用二分查找法在有序表中找到正确的插入位置,然后移动记录,空出插入位置,再进行插入的排序方法。

4.希尔排序希尔排序的基本思想是:先选取一个小于n的整数d1作为第一个增量,把待排序的数据分成d1个组,所有距离为d1的倍数的记录放在同一个组内,在各组内进行直接插入排序,每一趟排序会使数据更接近于有序。

然后,取第二个增量d2,d2< d1,重复进行上述分组和排序,直至所取的增量d i=1(其中d i< d i-1 < ……< d2< d1),即所有记录在同一组进行直接插入排序后为止。

5.冒泡排序冒泡法是指每相邻两个记录关键字比大小,大的记录往下沉(也可以小的往上浮)。

每一遍把最后一个下沉的位置记下,下一遍只需检查比较到此为止;到所有记录都不发生下沉时,整个过程结束。

6.快速排序快速排序法是通过一趟排序,将待排序的记录组分割成独立的两部分,其中前一部分记录的关键字均比枢轴记录的关键字小;后一部分记录的关键字均比枢轴记录的关键字大,枢轴记录得到了它在整个序列中的最终位置并被存放好。

第二趟再分别对分割成两部分子序列,再进行快速排序,这两部分子序列中的枢轴记录也得到了最终在序列中的位置而被存放好,并且它们又分别分割出独立的两个子序列……。

最新版《数据结构》各章习题及答案

最新版《数据结构》各章习题及答案

最新版《数据结构》各章习题及答案第一章绪论一、选择题1.组成数据的基本单位是()(A)数据项(B)数据类型(C)数据元素(D)数据变量2.数据结构是研究数据的()以及它们之间的相互关系。

(A)理想结构,物理结构(B)理想结构,抽象结构(C)物理结构,逻辑结构(D)抽象结构,逻辑结构3.在数据结构中,从逻辑上可以把数据结构分成()(A)动态结构和静态结构(B)紧凑结构和非紧凑结构(C)线性结构和非线性结构(D)内部结构和外部结构4.数据结构是一门研究非数值计算的程序设计问题中计算机的(①)以及它们之间的(②)和运算等的学科。

① (A)数据元素(B)计算方法(C)逻辑存储(D)数据映像② (A)结构(B)关系(C)运算(D)算法5.算法分析的目的是()。

(A)找出数据结构的合理性(B)研究算法中的输入和输出的关系(C)分析算法的效率以求改进(D)分析算法的易懂性和文档性6.计算机算法指的是(①),它必须具备输入、输出和(②)等5 个特性。

① (A)计算方法(B)排序方法(C)解决问题的有限运算序列(D)调度方法② (A)可执行性、可移植性和可扩充性(B)可行性、确定性和有穷性(C)确定性、有穷性和稳定性(D)易读性、稳定性和安全性二、判断题1.数据的机内表示称为数据的存储结构。

()2.算法就是程序。

()3.数据元素是数据的最小单位。

()4.算法的五个特性为:有穷性、输入、输出、完成性和确定性。

()5.算法的时间复杂度取决于问题的规模和待处理数据的初态。

()三、填空题1.数据逻辑结构包括________、________、_________ 和__________ 四种类型,其中树形结构和图形结构合称为_____ 。

2.在线性结构中,第一个结点____前驱结点,其余每个结点有且只有______ 个前驱结点;最后一个结点______后续结点,其余每个结点有且只有 _______ 个后续结点。

3.在树形结构中,树根结点没有_______ 结点,其余每个结点有且只有_______个前驱结点;叶子结点没有 ________ 结点,其余每个结点的后续结点可以_________。

数据结构 6-10章自测题及答案

数据结构 6-10章自测题及答案

自测题(6-10章)一、填空题1、二叉树第i(i>=1)层上至多有______个结点,深度为k(k>=1)的二叉树至多有______个结点。

2、对任何二叉树,若度为2的节点数为n2,则叶子数n0=______。

3、满二叉树上各层的节点数已达到了二叉树可以容纳的______,满二叉树也是______二叉树,但反之不然。

4、具有n个结点的完全二叉树的深度为______。

5、具有n个结点的二叉树中,一共有________个指针域,其中只有________个用来指向结点的左右孩子,其余的________个指针域为NULL。

6、二叉树有不同的链式存储结构,其中最常用的是________与________。

7、若二叉树的一个叶子是某子树的中根遍历序列中的第一个结点,则它必是该子树的后根遍历序列中的________个结点。

8、由________转换成二叉树时,其根结点的右子树总是空的。

9、哈夫曼树是带权路径长度________的树,通常权值较大的结点离根________。

10、有m个叶子结点的哈夫曼树,其结点总数为________。

11、已知一棵度为3的树有2个度为1的结点,3个度为2的结点,4个度为3的结点,则该树中有________个叶子结点。

12、具有10个顶点的无向图,边的总数最多为________。

13、N个顶点的连通图的生成树含有________条边。

14、无向图的邻接矩阵是一个________矩阵,有向图的邻接矩阵不一定是________矩阵。

15、一个具有n个顶点的完全无向图的边数为________,一个具有n个顶点的完全有向图的弧数为________。

16、遍历图的基本方法有________优先搜索和________优先搜索两种。

17、在有向图的邻接矩阵上,由第i行可得到第________个结点的________,而由第j列可得到第________个结点的________。

18、折半查找有序表(4,6,12,20,28,38,50,70,88,100),若查找表中元素20,它将依次与表中元素________比较大小。

第10章怎样管理和利用数据练习题答案解析

第10章怎样管理和利用数据练习题答案解析

第10章怎样管理和利用数据1、数据库系统是信息社会中重要的系统,其基本构成如下图示意。

仔细理解数据库、数据库系统和数据库管理系统等概念,回答下列问题。

图10-1(1)关于为什么要用“数据库”,下列说法正确的是_____。

(A)因为数据库可以使不同地点的人员实时地共享数据,一个地点的人员对数据库中数据进行了修改,另一个地点的人员可以马上了解这种修改,这种实时共享数据是纸面数据、非数据库数据所达不到的;(B)因为数据库是聚集数据的一种有效手段,数据库管理系统可以帮助我们对数据进行若干的管理和控制,而只有聚集了大量数据,才能发挥聚集数据的效益;(C)因为数据库可以有效实现“数据产生的分散化”和“数据应用的共享化”;(D)因为数据库可以便利用户对数据的操控,用户可以用简单的一条语句便可实现诸如“统计每个学生平均成绩”这样具有大量计算的工作;(E)上述原因都是要用“数据库”的理由,但还有其他理由。

答案:E解释:本题目考查数据库系统与数据库管理系统的相关概念。

选择(E),(A)(B)(C)(D)均正确,但单独每一项均不够全面,简单举例,数据库可以将数据电子化克服了大量纸面保存的数据占用空间不方便查询等缺点。

具体内容请参考课堂视频“数据为什么要管理”和第十章课件。

(2)关于数据库,下列说法不正确的是_____。

(A)数据库是一个特定组织所拥有的相互有关联关系的数据的集合;(B)数据库是以统一的数据结构组织数据并存放于存储介质上的数据集合;(C)数据库可以为各类人员通过应用程序所共享使用;(D)数据库是管理大规模数据集合的一种软件;答案:D解释:本题目考查数据库系统与数据库管理系统的相关概念。

选择(D),数据库并不等同于数据库管理系统。

具体内容请参考课堂视频“什么是数据库与数据库系统”和第十章课件。

(3)有以下一些要素:(I)数据库;(II)数据库管理系统;(III)数据库应用;(IV)数据库管理员;(V)计算机基本系统及网络,则一个数据库系统是由_____组成的一个系统。

数据结构第10章习题

数据结构第10章习题

三、填空题
1. 设用希尔排序对数组{98,36,-9,0,47,23, 1,8,10,7}进行排序,给出的步长(也称增量 序列)依次是4,2,1则排序需__________趟, 写出第一趟结束后,数组中数据的排列次序 __________。 【南京理工大学 1997 三、5 (2分)】 2.若不考虑基数排序,则在排序过程中,主要进行 的两种基本操作是关键字的______和记录的 _____。 【北京邮电大学 2001 二、7 (4分)】 3.分别采用堆排序,快速排序,冒泡排序和归并排 序,对初态为有序的表,则最省时间的是_____ 算法,最费时间的是______算法。【福州大学 1998 二、10 (2分)】
பைடு நூலகம்
12.就排序算法所用的辅助空间而言,堆排序,快 速排序,归并排序的关系是( a ) A.堆排序〈 快速排序〈归并排序 B.堆排序 〈 归并排序〈 快速排序 C.堆排序〉 归并排序 〉快速排序 D.堆排 序 > 快速排序 > 归并排序 E.以上答案都不 对 【西安交通大学 1996 三、1 (3分)】 13.将两个各有N个元素的有序表归并成一个有序表, 其最少的比较次数是( a ) A.N B.2N-1 C.2N D.N-1
2.比较次数与排序的初始状态无关的排序方法是 ( d )。【北方交通大学 2000 二、2(2分)】
A.直接插入排序 D.简单选择排序 B.起泡排序 C.快速排序
3.数据序列(8,9,10,4,5,6,20,1,2)只能是 下列排序算法中的( c )的两趟排序后的结果。 【合肥工业大学 1999 一、3 (2分)】 A.选择排序 B.冒泡排序 C.插入排序 D.堆排序 4.数据序列(2,1,4,9,8,10,6,20)只能是下 列排序算法中的( a )的两趟排序后的结果。 A. 快速排序 B. 冒泡排序 C. 选择排序 D. 插入排序 5.对序列{15,9,7,8,20,-1,4}进行排序,进行 一趟后数据的排列变为{4,9,-1,8,20,7,15}; 则采用的是( c )排序。【南京理工大学 1998 一、8(2分)】 A. 选择 B. 快速 C. 希尔 D. 冒泡

数据结构第10章排序练习及答案

数据结构第10章排序练习及答案

9.1选择题1.从末排序的序列中依次取出一个元素与已排序序列中的元素依次进行比较,然后将其放在排序序列的合适位置,该排序方法称为()排序法。

A)插入B)选择C)希尔D)二路归并【答案】A2.下面各种排序方法中,最好情况下时间复杂度为O(n)的是()A)快速排序B)直接插入排序C)堆排序D)归并排序【答案】B3.用某种排序方法对线性表(25,84,21,47,15,27,68,35,20)进行排序时,无序序列的变化情况如下:25 84 21 47 15 27 68 35 2020 15 21 25 47 27 68 35 8415 20 21 25 35 27 47 68 8415 20 21 25 27 35 47 68 84则所采用的排序方法是()A)选择排序B)希尔排序C)归并排序D)快速排序【答案】D4.下面给出的四种排序法中,()排序是不稳定排序法。

A)插入B)冒泡C)二路归并D)堆【答案】D5.快速排序方法在()情况下最不利于发挥其长处。

A)要排序的数据量太大B)要排序的数据中含有多个相同值C)要排序的数据已基本有序D)要排序的数据个数为奇数【答案】C6.一组记录的关键码为(46,79,56,38,40,84),则利用快速排序的方法,以第一个记录为基准得到的一次划分结果为()A)38,40,46,56,79,84B)40,38,46,79,56,84C)40,38,46,56,79,84D)40,38,46,84,56,79【答案】C7.对记录的关键码{50,26,38,80,70,90,8,30,40,20}进行排序,各趟排序结束时的结果为:50,26,38,80,70,90 ,8,30,40,2050,8,30,40,20,90,26,38,80,7026,8,30,40,20,80,50,38,90,708,20,26,30,38,40,50,70,80,90其使用的排序方法是()A)快速排序B)基数排序C)希尔排序D)归并排序【答案】C8.以下序列不是堆的是()A)100,85,98,77,80,60,82,40,20,10,66B)100,98,85,82,80,77,66,60,40,20,10C)10,20,40,60,66,77,80,82,85,98,100D)100,85,40,77,80,60,66,98,82,10,20【答案】D【解析】根据堆采用完全二叉树的顺序存储形式及堆的特点,因第一个结点即根结点关键字值最大,则应建立一个大根堆,但依据此数据序列建立起堆后关键字值为40的左右孩子结点分别为60、66,不符合大根堆特点。

DAMA-CDGA(数据治理工程师)-重点章节习题-第10章

DAMA-CDGA(数据治理工程师)-重点章节习题-第10章

数据治理工程师 CDGA 认证考试习题集第十章参考数据和主数据(重点章节)1. 实体解析过程对于主数据管理至关重要,以下不属于实体解析活动的是?A 实例提取B 实例准备C 实例解析D 实例管理2. 以下不属于参考数据变更请求流程的是?A 接受变更请求B 确定利益相关方C 确定范围D 决策和沟通3. 数据采集过程必须是一个可靠的、可重复的过程,以下关于数据采集活动顺序正确的是:①接受应应对新的数据源采集的要求;②评估数据并将数据整合的复杂性传递给请求者,以帮助他们进行成本效益分析;③使用数据清理和数据分析工具进行快速、即时、匹配和高级的数据治理评估;④试点数据采集及其对匹配规则的影响;⑤确定由谁负责监控和维护新数据源数据的质量;⑥为新数据确定数据质量指标;⑦完成与整体数据管理环境的集成1A ①②③④⑤⑥⑦B ①③②④⑤⑥⑦C ①②③④⑥⑤⑦D ①③②④⑥⑤⑦4. 关于主数据与参考数据管理的实施指南不包含以下哪项?A.遵循主数据架构B.管理参考数据变更C.组织和文化变革D.监测共享协议的数据5. 以下关于主数据和参考数据描述错误的是?A 两者都为交易数据的创建和使用提供重要的上下文信息B 参考数据管理包括实体解析的挑战C 参考数据管理需要对定义的域值及其定义进行控制D 主数据管理需要对主数据的值和标识符进行控制6.对于参考数据与主数据差异描述错误是()A. 主数据管理(Master Data Management,MDM)需要对主数据的值和标识符进行控制,以便能够跨系统一致地使用核心业务实体的最准确并且最及时的数据。

2B. 主数据管理的目标包括确保当前值的准确性和可用性,同时降低由那些不明确的标识符所引发的相关风险.C. 参考数据管理(Reference Data Management,RDM)需要对定义的域值及其定义进行控制。

参考数据管理的目标是确保组织能够访问每个概念的一整套准确、且最新的值。

D. 参考数据和主数据没有着相似的用途。

数据结构Ch10习题答案

数据结构Ch10习题答案

第十章内部排序一、择题1.用直接插入排序法对下面四个表进行(由小到大)排序,比较次数最少的是(B)。

A.(94,32,40,90,80,46,21,69)插32,比2次插40,比2次插90,比2次插80,比3次插46,比4次插21,比7次插69,比4次B.(21,32,46,40,80,69,90,94)插32,比1次插46,比1次插40,比2次插80,比1次插69,比2次插90,比1次插94,比1次C.(32,40,21,46,69,94,90,80)插40,比1次插21,比3次插46,比1次插69,比1次插94,比1次插90,比2次插80,比3次D.(90,69,80,46,21,32,94,40)插69,比2次插80,比2次插46,比4次插21,比5次插32,比5次插94,比1次插40,比6次2.下列排序方法中,哪一个是稳定的排序方法(BD)。

A.希尔排序B.直接选择排序C.堆排序D.冒泡排序下列3题基于如下代码:for(i=2;i<=n;i++){ x=A[i];j=i-1;while(j>0&&A[j]>x){ A[j+1]=A[j];j--;}A[j+1]=x}3.这一段代码所描述的排序方法称作(A)。

A.插入排序B.冒泡排序C.选择排序D.快速排序4.这一段代码所描述的排序方法的平均执行时间为(D)A.O(log2n) B.O(n) C.O(nlog2n) D.O(n2)5.假设这段代码开始执行时,数组A中的元素已经按值的递增次序排好了序,则这段代码的执行时间为(B)。

A.O(log2n) B.O(n) C.O(nlog2n) D.O(n2)6.在快速排序过程中,每次被划分的表(或了表)分成左、右两个子表,考虑这两个子表,下列结论一定正确是(B)。

A.左、右两个子表都已各自排好序B.左边子表中的元素都不大于右边子表中的元素C.左边子表的长度小于右边子表的长度D.左、右两个子表中元素的平均值相等7.对n个记录进行堆排序,最坏情况下的执行时间为(C)。

实用数据结构基础[第四版]课后习题

实用数据结构基础[第四版]课后习题

一、判断题(第一章绪论)1.数据元素是数据的最小单元。

答案:错误2.一个数据结构是由一个逻辑结构和这个逻辑结构上的基本运算集构成的整体。

答案:错误3.数据的存储结构是数据元素之间的逻辑关系和逻辑结构在计算机存储器内的映像。

答案:正确4.数据的逻辑结构是描述元素之间的逻辑关系,它是依赖于计算机的。

答案:错误5.用语句频度来表示算法的时间复杂度的最大好处是可以独立于计算机的软硬件,分析算法的时间答案:正确(第二章线性表)6.取顺序存储线性表的第i个元素的时间同i的大小有关。

答案:错误7.线性表链式存储的特点是可以用一组任意的存储单元存储表中的数据元素。

答案:正确8.线性链表的每一个节点都恰好包含一个指针域。

答案:错误9.顺序存储方式的优点的存储密度大,插入和删除效率不如练市存储方式好。

答案:正确10.插入和删除操作是数据结构中最基本的两种操作,所以这两种操作在数组中也经常使用。

答案:错误(第三章栈)11.栈是一种对进栈和出栈作了限制的线性表。

答案:错误12.在C(或C++)语言中设顺序栈的长度为MAXLEN,则top=MAXLEN表示栈满。

答案:错误13.链栈与顺序栈相比,其特点之一是通常不会出现满栈的情况。

答案:正确14.空栈就是所有元素都为0上的栈。

答案:错误15.将十进制数转换为二进制数是栈的典型应用之一。

答案:正确(第四章队列)16.队列式限制在两端进行操作的线性表。

答案:正确17.判断顺序队列为空的标准是头指针和尾指针都指向同一结点。

答案:错误18.在循环链列队中无溢出现像。

答案:错误19.在循环队列中,若尾指针rear大于头指针front,则元素个数为rear-front。

答案:正确20.顺序队列和循环队列关于队满和队空的判断条件是一样的。

答案:错误(第五章串)21.串是n个字母的有限序列。

答案:错误22.串的堆分配存储是一种动态存储结构。

答案:正确23.串的长度是指串中不同字符的个数。

数据结构(第3版)习题答案

数据结构(第3版)习题答案

十二五普通高等教育国家级本科规划教材第1章绪论高等学校精品资源共享课程什么是数据结构【答】:数据结构是指按一定的逻辑结构组成的一批数据,使用某种存储结构将这批数据存储于计算机中,并在这些数据上定义了一个运算集合。

数据结构涉及哪几个方面【答】:数据结构涉及三个方面的内容,即数据的逻辑结构、数据的存储结构和数据的运算集合。

两个数据结构的逻辑结构和存储结构都相同,但是它们的运算集合中有一个运算的定义不一样,它们是否可以认作是同一个数据结构为什么【答】:不能,运算集合是数据结构的重要组成部分,不同的运算集合所确定的数据结构是不一样的,例如,栈与队列它们的逻辑结构与存储结构可以相同,但由于它们的运算集合不一样,所以它们是两种不同的数据结构。

线性结构的特点是什么非线性结构的特点是什么【答】:线性结构元素之间的关系是一对一的,在线性结构中只有一个开始结点和一个终端结点,其他的每一个结点有且仅有一个前驱和一个后继结点。

而非线性结构则没有这个特点,元素之间的关系可以是一对多的或多对多的。

数据结构的存储方式有哪几种【答】:数据结构的存储方式有顺序存储、链式存储、散列存储和索引存储等四种方式。

算法有哪些特点它和程序的主要区别是什么【答】:算法具有(1)有穷性(2)确定性(3)0 个或多个输入(4)1 个或多个输出(5)可行性等特征。

程序是算法的一种描述方式,通过程序可以在计算机上实现算法。

抽象数据类型的是什么它有什么特点【答】:抽象数据类型是数据类型的进一步抽象,是大家熟知的基本数据类型的延伸和发展。

抽象数据类型是与表示无关的数据类型,是一个数据模型及定义在该模型上的一组运算。

对一个抽象数据类型进行定义时,必须给出它的名字及各运算的运算符名,即函数名,并且规定这些函数的参数性质。

一旦定义了一个抽象数据类型及具体实现,程序设计中就可以像使用基本数据类型那样,十分方便地使用抽象数据类型。

抽象数据类型的设计者根据这些描述给出操作的具体实现,抽象数据类型的使用者依据这些描述使用抽象数据类型。

数据结构C语言版(第2版)严蔚敏人民邮电出版社课后习题答案

数据结构C语言版(第2版)严蔚敏人民邮电出版社课后习题答案

数据结构( C语言版)(第 2版)课后习题答案李冬梅2015.3目录第 1 章绪论 (1)第 2 章线性表 (5)第 3 章栈和队列 (13)第 4 章串、数组和广义表 (26)第 5 章树和二叉树 (33)第 6 章图 (43)第 7 章查找 (54)第 8 章排序 (65)第1章绪论1.简述下列概念:数据、数据元素、数据项、数据对象、数据结构、逻辑结构、存储结构、抽象数据类型。

答案:数据:是客观事物的符号表示,指所有能输入到计算机中并被计算机程序处理的符号的总称。

如数学计算中用到的整数和实数,文本编辑所用到的字符串,多媒体程序处理的图形、图像、声音、动画等通过特殊编码定义后的数据。

数据元素:是数据的基本单位,在计算机中通常作为一个整体进行考虑和处理。

在有些情况下,数据元素也称为元素、结点、记录等。

数据元素用于完整地描述一个对象,如一个学生记录,树中棋盘的一个格局(状态)、图中的一个顶点等。

数据项:是组成数据元素的、有独立含义的、不可分割的最小单位。

例如,学生基本信息表中的学号、姓名、性别等都是数据项。

数据对象:是性质相同的数据元素的集合,是数据的一个子集。

例如:整数数据对象是集合N={0 ,± 1,± 2,, } ,字母字符数据对象是集合C={‘A’,‘B’, , ,‘Z’,‘ a’,‘ b’, , ,‘z ’} ,学生基本信息表也可是一个数据对象。

数据结构:是相互之间存在一种或多种特定关系的数据元素的集合。

换句话说,数据结构是带“结构”的数据元素的集合,“结构”就是指数据元素之间存在的关系。

逻辑结构:从逻辑关系上描述数据,它与数据的存储无关,是独立于计算机的。

因此,数据的逻辑结构可以看作是从具体问题抽象出来的数学模型。

存储结构:数据对象在计算机中的存储表示,也称为物理结构。

抽象数据类型:由用户定义的,表示应用问题的数学模型,以及定义在这个模型上的一组操作的总称。

具体包括三部分:数据对象、数据对象上关系的集合和对数据对象的基本操作的集合。

《数据结构与算法》第十章-排序习题

《数据结构与算法》第十章-排序习题

《数据结构与算法》第二部分习题精选一、填空题1. 大多数排序算法都有两个基本的操作:和。

2. 在对一组记录(54,38,96,23,15,72,60,45,83)进行直接插入排序时,当把第7个记录60插入到有序表时,为寻找插入位置至少需比较次。

(可约定为从后向前比较)3. 在插入和选择排序中,若初始数据基本正序,则选用;若初始数据基本反序,则选用。

4. 在堆排序和快速排序中,若初始记录接近正序或反序,则选用;若初始记录基本无序,则最好选用。

5. 对于n个记录的集合进行冒泡排序,在最坏的情况下所需要的时间是。

若对其进行快速排序,在最坏的情况下所需要的时间是。

6. 对于n个记录的集合进行归并排序,所需要的平均时间是,所需要的附加空间是。

7.对于n个记录的表进行2路归并排序,整个归并排序需进行趟(遍),共计移动次记录。

二、单项选择题()1.将5个不同的数据进行排序,至多需要比较次。

A. 8 B. 9 C. 10 D. 25()2.排序方法中,从未排序序列中依次取出元素与已排序序列(初始时为空)中的元素进行比较,将其放入已排序序列的正确位置上的方法,称为A. 希尔排序B. 冒泡排序C. 插入排序D. 选择排序()3.排序方法中,从未排序序列中挑选元素,并将其依次插入已排序序列(初始时为空)的一端的方法,称为A. 希尔排序B. 归并排序C. 插入排序D. 选择排序()4.对n个不同的排序码进行冒泡排序,在下列哪种情况下比较的次数最多。

A. 从小到大排列好的B. 从大到小排列好的C. 元素无序D. 元素基本有序()5.对n个不同的排序码进行冒泡排序,在元素无序的情况下比较的次数为A. n+1 B. n C. n-1 D. n(n-1)/2 ()6.快速排序在下列哪种情况下最易发挥其长处。

A. 被排序的数据中含有多个相同排序码B. 被排序的数据已基本有序C. 被排序的数据完全无序D. 被排序的数据中的最大值和最小值相差悬殊()7.对有n个记录的表作快速排序,在最坏情况下,算法的时间复杂度是A.O(n) B.O(n2) C.O(nlog2n) D.O(n3)()8.若一组记录的排序码为(46, 79, 56, 38, 40, 84),则利用快速排序的方法,以第一个记录为基准得到的一次划分结果为A. 38, 40, 46, 56, 79, 84 B. 40,38, 46 , 79, 56, 84C. 40, 38,46, 56, 79, 84 D. 40, 38,46, 84, 56, 79()9.在最好情况下,下列排序算法中排序算法所需比较关键字次数最少。

《数据结构》课后习题答案(第2版)

《数据结构》课后习题答案(第2版)

1 填空题(1)数据元素(2)数据项数据元素(3)集合线性结构树结构图结构(4)顺序存储链接存储数据元素数据元素之间的关系(5)零或多个输入一个或多个输出有穷性确定性可行性(6)自然语言程序设计语言流程图伪代码,伪代码(7)问题规模(8)O(1) O(nlog2n)2 选择题(1)C D (2)B (3) B (4) A (5) D (6)A (7) C (8) C E3 判断题×××√×第二章1 填空题(1)表长一半表长位置(2)108(3)p->next=(p->next)->next;(4)运算方便(5)p->next=head;(6)s->next=rear->next rear->next=s; rear=s;q=rear->next->next; rear->next->next=q->next; delete q;(7)O(1) O(n)(8)循环单链表循环双链表双链表2 选择题(1) A B (2) D (3) B (4) A (5) A (6) D(7) B(8) B(9) C(10)B(11)B(12)D(13)A(14)A3 判断题×××××1 填空题(1)1003H(2)顺序栈和链栈top=-1或top==NULL top==数组长度或内存无可用空间(3)栈(4)abc+*d-(5)后进先出先进先出操作位置受限(6)假溢出(7)(rear-front+n)% n(8)O(1) O(n)2 选择题(1) C (2) D (3) C (4) B(5) B(6) B(7) D(8) A(9) C3 判断题×√√××第四章1 填空题(1)数据元素的类型是字符(2)长度相等且对应位置字符相等(3)存取修改顺序存储(4)1140(5)d+41(6)三元组顺序表十字链表2 选择题(1) B (2) D E K (3) B (4) C(5) D(6) C(7) D3 判断题×√√××1 填空题(1)有且仅有一个互不相交(2)度孩子双亲(3)2i-1(n+1)/2 (n-1)/2 (4)2h-1 2h-1(5)2k-1(6)50(7)12(8)CDBGFEA (9)2n n-1 n+1 (10)n n-12 选择题(1) D (2) D (3) B (4) C (5) B C (6) D(7) A(8) A B(9) D A(10)B(11)B(12)C(13)D(14)C3 判断题×√×√×第六章1 填空题(1)0 n(n-1)/2 0 n(n-1) (2)自身(3)邻接矩阵邻接表(4)O(n+e)(5)第j列所有元素之和(6)出度(7)前序栈层序队列(8)O(n2) O(elog2e) (9)回路(10)v i v j v k2 选择题(1) c (2) A G (3) C (4) B (5) D (6) C F(7) B(8) D(9) A(10)A(11)A(12)C(13)A(14)C C F(15)B3 判断题√√××××√×1 填空题(1)顺序存储和链接存储顺序存储按照关键码有序(2) 1 ,7(3)8,59/15(4) 4(5)62(6)开放定址法拉链法(7)散列查找(8)通过关键码计算记录的存储地址并进行一定的比较2 选择题(1) B (2) D B (3) A D (4) D (5) A(6) C(7) C(8) B(9) D(10)A(11)C(12)D3 判断题×××××第八章1 填空题(1)查找(2)正序n-1 反序n(n-1)/2 (3) 3(4) 3(5)O(nlog2n) O(n)(6)n-1(7)50(8)602 选择题(1) C (2) C (3) C (4) B (5) A (6) A(7) B C B(8) C(9) D(10)A D(11)B(12)D,B,E,A,C(13)C,A,D,B,B,D,F(14)C(15)D3 判断题×√××√。

数据结构分章节习题及答案

数据结构分章节习题及答案

各章习题各章习题 (1)第一章绪论(7) (1)第二章线性表(6) (2)第三章栈和队列(5) (2)第四章串(3) (3)第五章数组(3) (3)第六章二叉树(20) (4)第七章图(5) (6)第九章查找(5) (7)第十章排序(8) (7)第一章绪论(7)1、数据结构中的4种逻辑结构是_________、__________、_________、_________.2.在数据结构中,从逻辑上可以把数据结构分成_________。

A.动态结构和静态结构B.紧凑结构和非紧凑结构C.线性结构和非线性结构D.内部结构和外部结构3、一个算法除了输入和输出特性外,还必须具有的特性不包括_____A 有穷性B 可扩展性C 确定性D可行性4.算法分析的两个主要方面是____。

A.空间复杂性和时间复杂性B.正确性和简明性C.可读性和文档性D.数据复杂性和程序复杂性5.设有数据结构D={d1,d2,d3,d4},R={(d1,d2),(d2,d3),(d3,d4)}画出相关逻辑图6.设图G=(V,E),V={1,2,3,4,5,6},E={<1,2>,<1,3>,<2,5>,<3,6>,<6,5>,<5,4>,<6,4>}。

请画出该图7.计算下列标有@语句的频度i=1;j=0;while (i+j<=n){if(i<j) j++ //@else i++;}第二章线性表(6)1.在n个元素的顺序表中插入或删除一个元素,需要平均移动________个元素。

2.带头结点的单循环链表,判定表空的条件是(设指向头结点的指针是H)_________________。

3. 不带头结点的单链表head为空的判定条件是___________A.head == NULLB.head->next == NULLC.head->next == headD.head != NULL4.线性表的顺序存储结构是一种______的存储结构,线性表的链式存储结构是一种______的存储结构。

《数据结构》第二版严蔚敏课后习题作业参考答案(1-7章)

《数据结构》第二版严蔚敏课后习题作业参考答案(1-7章)

第1章4.答案:(1)顺序存储结构顺序存储结构是借助元素在存储器中的相对位置来表示数据元素之间的逻辑关系,通常借助程序设计语言的数组类型来描述。

(2)链式存储结构顺序存储结构要求所有的元素依次存放在一片连续的存储空间中,而链式存储结构,无需占用一整块存储空间。

但为了表示结点之间的关系,需要给每个结点附加指针字段,用于存放后继元素的存储地址。

所以链式存储结构通常借助于程序设计语言的指针类型来描述。

5. 选择题(1)~(6):CCBDDA\6.(1)O(1) (2)O(m*n) (3)O(n2)(4)O(log3n) (5)O(n2) (6)O(n)(第2章1.选择题(1)~(5):BABAD (6)~(10): BCABD (11)~(15):CDDAC\2.算法设计题(1)将两个递增的有序链表合并为一个递增的有序链表。

要求结果链表仍使用原来两个链表的存储空间, 不另外占用其它的存储空间。

表中不允许有重复的数据。

[题目分析]合并后的新表使用头指针Lc指向,pa和pb分别是链表La和Lb的工作指针,初始化为相应链表的第一个结点,从第一个结点开始进行比较,当两个链表La和Lb均为到达表尾结点时,依次摘取其中较小者重新链接在Lc表的最后。

如果两个表中的元素相等,只摘取La表中的元素,删除Lb表中的元素,这样确保合并后表中无重复的元素。

当一个表到达表尾结点,为空时,将非空表的剩余元素直接链接在Lc表的最后。

void MergeList(LinkList &La,LinkList &Lb,LinkList &Lc){法设计题(1)将编号为0和1的两个栈存放于一个数组空间V[m]中,栈底分别处于数组的两端。

当第0号栈的栈顶指针top[0]等于-1时该栈为空,当第1号栈的栈顶指针top[1]等于m时该栈为空。

两个栈均从两端向中间增长。

试编写双栈初始化,判断栈空、栈满、进栈和出栈等算法的函数。

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

1.下列排序算法中,其中( D )是稳定的。

A. 堆排序,冒泡排序
B. 快速排序,堆排序
C. 直接选择排序,归并排序
D. 归并排序,冒泡排序
2.有一组数据(15,9,7,8,20,-1,7,4)用快速排序的划分方法进行一趟划分后数据的排序为 ( A )(按递增序)。

A.下面的B,C,D都不对。

B.9,7,8,4,-1,7,15,20
C.20,15,8,9,7,-1,4,7 D. 9,4,7,8,7,-1,15,20
3.下列排序算法中,在每一趟都能选出一个元素放到其最终位置上,并且其时间性能受数据初始特性影响的是:( B )。

A. 直接插入排序
B. 快速排序
C. 直接选择排序
D. 堆排序
4.如果只想得到1000个元素组成的序列中第5个最小元素之前的部分排序的序列,用( D )方法最快。

A.起泡排序 B.快速排列 C.Shell排序 D.堆排序 E.简单选择排序
5.从未排序序列中依次取出一个元素与已排序序列中的元素依次进行比较,然后将其放在已排序序列的合适位置,该排序方法称为( A )排序法。

A. 插入
B. 选择
C. 希尔
D. 二路归并
6. 在排序算法中,每次从未排序的记录中挑出最小(或最大)关键码字的记录,加入到已排序记录的末尾,该排序方法是( A )。

A. 选择
B. 冒泡
C. 插入
D. 堆
7. 若用冒泡排序方法对序列{10,14,26,29,41,52}从大到小排序,需进行( C )次比较。

A. 3
B. 10
C. 15
D. 25
8. 对序列{15,9,7,8,20,-1,4,} 用希尔排序方法排序,经一趟后序列变为{15,-l,4,8,20,9,7}则该次采用的增量是 ( B )
A. l
B. 4
C. 3
D. 2
9. 堆排序是( E )类排序
A. 插入
B. 交换
C. 归并
D. 基数
E. 选择
10.排序方法有许多种,(1)法从未排序的序列中依次取出元素,与已排序序列(初始时为空)中的元素作比较,将其放入已排序序列的正确位置上;(2)法从未排序的序列中挑选元素,并将其依次放入已排序序列(初始时为空)的一端;交换排序方法是对序列中的元素进行一系列比较,当被比较的两元素逆序时,进行交换;(3)和(4)是基于这类方法的两种排序方法,而(4)是比(3)效率更高的方法;(5)法是基于选择排序的一种排序方法,是完全二叉树结构的一个重要应用。

(1)--(5): A.选择排序 B.快速排序 C.插入排序 D.起泡排序
E.归并排序 F.shell排序 G.堆排序 H.基数排序
10.1C 5 2A 3D 4B 5G
1.若不考虑基数排序,则在排序过程中,主要进行的两种基本操作是关键字的__
____和记录的_____。

比较,移动
2.分别采用堆排序,快速排序,冒泡排序和归并排序,对初态为有序的表,则最省时间的是_____算法,最费时间的是______算法。

冒泡,快速
3. 设用希尔排序对数组{98,36,-9,0,47,23,1,8,10,7}进行排序,给出的步长(也称增量序列)依次是4,2,1则排序需__________趟,写出第一趟结束后,数组中数据的排列次序__________。

3,(10,7,-9,0,47,23,1,8,98,36)
4.对给定文件(28,07,39,10,65,14,61,17,50,21)选择第一个元素28进行划分,写出其快速排序第一遍的排序过程。

答案:
初始序列:[28],07,39,10,65,14,61,17,50,21
21移动:21,07,39,10,65,14,61,17,50,[]
39移动:21,07,[],10,65,14,61,17,50,39
17移动:21,07,17,10,65,14,61,[],50,39
65移动:21,07,17,10,[],14,61,65,50,39
14移动:21,07,17,10,14,[28],61,65,50,39
5.已知一关键码序列为:3,87,12,61,70,97,26,45。

试根据堆排序原理,填写完整下示各步骤结果。

建立堆结构:_____________
交换与调整:
(1)87 70 26 61 45 12 3 97;(2)____________________;
(3)61 45 26 3 12 70 87 97;(4)____________________;
(5)26 12 3 45 61 70 87 97;(6)____________________;
(7)3 12 26 45 61 70 87 97;
答案:建立堆结构:97,87,26,61,70,12,3,45 (2)70,61,26,3,45,12,87,97
(4)45,12,26,3,61,70,87,97 (6)12,3,26,45,61,70,87,97
1.全国有10000人参加物理竞赛,只录取成绩优异的前10名,并将他们从高分到低分输出。

而对落选的其他考生,不需排出名次,问此种情况下,用何种排序方法速度最快?为什么?答案:在内部排序方法中,一趟排序后只有简单选择排序和冒泡排序可以选出一个最大(或最小)元素,并加入到已有的有序子序列中,但要比较n-1次。

选次大元素要再比较n-2次,其时间复杂度是O(n2)。

从10000个元素中选10个元素不能使用这种方法。

而快速排序、插入排序、归并排序、基数排序等时间性能好的排序,都要等到最后才能确定各元素位置。

只有堆排序,在未结束全部排序前,可以有部分排序结果。

建立堆后,堆顶元素就是最大(或最小,视大堆或小堆而定)元素,然后,调堆又选出次大(小)元素。

凡要求在n个元素中选出k(k<<n,k>2)个最大(或最小)元素,一般均使用堆排序。

因为堆排序建堆比较次数至多不超过4n,对深度为k的堆,在调堆算法中进行的关键字的比较次数至多为2(k-1)次,且辅助空间为O(1)。

2.给出一组关键字T=(12,2,16,30,8,28,4,10,20,6,18),写出用下列算法从小到大排序时第一趟结束时的序列;
(1) 希尔排序(第一趟排序的增量为5) (2) 快速排序
(3) 基数排序(基数为10)
答案: (1)一趟希尔排序: 12,2,10,20,6,18,4,16,30,8,28 ( D=5)
(2)一趟快速排序:6,2,10,4,8,12,28,30,20,16,18
(3)基数排序LSD [0][1][2][3][4][5][6][7][8][9]
↓↓↓↓↓
分配 30 12 4 16 8
↓↓↓↓
10 2 6 28
↓↓
20 18
收集:→30→10→20→12→2→4→16→6→8→28→18
3.给定一个关键字序列{24,19,32,43,38,6,13,22},请写出快速排序第一趟的结果;堆排序时所建的初始堆;归并排序的全过程。

然后回答上述三中排序方法中那一种方法使用的辅助空间最少?在最坏情况下那种方法的时间复杂度最差?
答案:一趟快速排序:22,19,13,6,24,38,43,32
初始大堆:43,38,32,22,24,6,13,19
二路并归:第一趟:19,24,32,43,6,38,13,22
第二趟:19,24,32,43,6,13,22,38
第三趟:6,13,19,22,24,32,38,43
堆排序辅助空间最少,最坏情况下快速排序时间复杂度最差。

4. 已知序列{29 38 22 45 23 67 31},请给出快速排序时每一趟的结果。

5.知序列{7, 4, -2, 19, 13, 6},请给出采用插入排序法对该序列作递增排序时,每一趟的结果。

6. 已知序列{23, 38, 22, 45, 67, 31, 15, 41},请给出采用冒泡排序法对该序列作递增排序时每一趟的结果。

初始关键字序列: 23 38 22 45 67 31 15 41
第一趟排序后: 23 22 38 45 31 15 41 67
第二趟排序后: 22 23 38 31 15 41 45 67
第三趟排序后: 22 23 31 15 38 41 45 67
第四趟排序后: 22 23 15 31 38 41 45 67
第五趟排序后: 22 23 15 31 38 41 45 67
第六趟排序后: 22 15 23 31 38 41 45 67
第七趟排序后: 15 2223 31 38 41 45 67
7.已知序列{28,17,85,96,75,8,42,65,04},请给出采用二路归并排序法对该序列作递增排序时的每一趟的结果。

原序列 {28, 17, 85, 96, 75, 8, 42, 65, 04}
{28}{17}{85}{ 96}{75}{ 8}{42}{ 65}{ 04}
第一趟 {17, 28}{ 85, 96}{ 8, 75}{ 42, 65}{ 04}
第二趟 {17, 28, 85,96}{8,42,65, 75}{ 04}
第三趟 {8, 17,28,42, 65,75,85,96}{ 04}
第四趟 {04,8,17,28,42,65,75,85,96}
8. 键字序列为(314, 617, 253, 335, 19, 237, 464, 121, 46, 231, 176, 344)的一组记录,请给出采用基数排序时的每一趟结果。

相关文档
最新文档