20101月数据结构答案、解析
02142数据结构导论2010年1 月份真题及答案

2010年1月高等教育自学考试全国统一命题考试数据结构导论试题课程代码:02142一、单项选择题(本大题共15小题,每小题2分,共30分)在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。
错选、多选或未选均无分。
1.下述文件中适合于磁带存储的是()A.顺序文件B.索引文件C.散列文件D.多关键字文件2.某二叉树的后根遍历序列为dabec,中根遍历序列为debac,则先根遍历序列为()A.acbedB.becabC.deabcD.cedba3.含有n个结点的二叉树用二叉链表表示时,空指针域个数为( )A.n-1B.nC.n+1D.n+24.在一个图中,所有顶点的度数之和与图的边数的比是( )A.1∶2B.1∶1C.2∶1D.4∶15.长度为n的链队列用单循环链表表示,若只设头指针,则出队操作的时间复杂度为( )A.O(1)B.O(1og2n)C.O(n)D.O(n2)6.下述几种排序方法中,要求内存量最大的是( )A.插入排序B.快速排序C.归并排序D.选择排序7.对n个不同值进行冒泡排序,在元素无序的情况下比较的次数为( )A.n-1B.nC.n+1D.n(n-1)/28.对线性表进行二分查找时,要求线性表必须( )A.以顺序方式存储B.以链式方式存储C.以顺序方式存储,且结点按关键字有序排列D.以链接方式存储,且结点按关键字有序排列9.在表长为n的顺序表上做删除运算,其平均时间复杂度为( )A.O(1)B.O(n)C.O(nlog2n)D.O(n2)10.当利用大小为n的数组顺序存储一个队列时,该队列的最大容量为( )A.n-2B.n-1C.nD.n+111.有关插入排序的叙述,错误的...是( )A.插入排序在最坏情况下需要O(n2)时间B.插入排序在最佳情况可在O(n)时间内完成C.插入排序平均需要O(nlog2n)时间D.插入排序的空间复杂度为O(1)12.有关树的叙述正确的是( )A.每一个内部结点至少有一个兄弟B.每一个叶结点均有父结点C.有的树没有子树D.每个树至少有一个根结点与一个叶结点。
《数据结构基础教程》习题及解答

《数据结构基础教程》习题及解答数据结构基础教程习题及解答第一章:数据结构简介1.1 什么是数据结构?数据结构是指相互之间存在一种或多种特定关系的数据元素的集合,包括数据的逻辑结构、物理结构和数据元素之间的运算。
1.2 数据的逻辑结构有哪些?数据的逻辑结构包括线性结构、树形结构和图状结构。
1.3 数据的物理结构有哪些?数据的物理结构包括顺序存储结构和链式存储结构。
1.4 数据结构的主要目标是什么?数据结构的主要目标是提高数据的存储效率和运算效率。
第二章:线性表2.1 线性表的定义线性表是由n(≥0)个数据元素组成的有限序列。
线性表是一种常见的数据结构,常用的实现方式包括数组和链表。
2.2 线性表的顺序存储结构线性表的顺序存储结构是将线性表中的元素存储在连续的存储空间中,通过元素在内存中的物理位置来表示元素之间的关系。
2.3 线性表的链式存储结构线性表的链式存储结构是通过指针将线性表中的元素连接在一起,每个元素包括数据域和指针域。
2.4 线性表的基本操作包括初始化线性表、插入元素、删除元素、查找元素等。
第三章:栈与队列3.1 栈的定义与特性栈是一种具有后进先出特性的线性表,只允许在一端进行插入和删除操作,被称为栈顶。
3.2 栈的顺序存储结构和链式存储结构栈的顺序存储结构和链式存储结构与线性表的存储结构类似,不同之处在于栈只允许在一端进行插入和删除操作。
3.3 栈的应用栈在表达式求值、函数调用和递归等场景中有广泛应用。
3.4 队列的定义与特性队列是一种具有先进先出特性的线性表,允许在一端插入元素,在另一端删除元素。
3.5 队列的顺序存储结构和链式存储结构队列的顺序存储结构和链式存储结构与线性表的存储结构类似,不同之处在于队列允许在一端插入元素,在另一端删除元素。
3.6 队列的应用队列在模拟排队系统、操作系统进程调度等场景中有广泛应用。
第四章:树与二叉树4.1 树的基本概念树是由n(≥0)个节点组成的有限集合,其中有一个称为根节点,除了根节点之外的其余节点被分为m(m≥0)个互不相交的集合,每个集合本身又是一棵树。
(完整版)数据结构课后习题答案(可编辑修改word版)

第1 章绪论1.简述下列概念:数据、数据元素、数据项、数据对象、数据结构、逻辑结构、存储结构、抽象数据类型。
答案:数据:是客观事物的符号表示,指所有能输入到计算机中并被计算机程序处理的符号的总称。
如数学计算中用到的整数和实数,文本编辑所用到的字符串,多媒体程序处理的图形、图像、声音、动画等通过特殊编码定义后的数据。
数据元素:是数据的基本单位,在计算机中通常作为一个整体进行考虑和处理。
在有些情况下,数据元素也称为元素、结点、记录等。
数据元素用于完整地描述一个对象,如一个学生记录,树中棋盘的一个格局(状态)、图中的一个顶点等。
数据项:是组成数据元素的、有独立含义的、不可分割的最小单位。
例如,学生基本信息表中的学号、姓名、性别等都是数据项。
数据对象:是性质相同的数据元素的集合,是数据的一个子集。
例如:整数数据对象是集合N={0,±1,±2,… },字母字符数据对象是集合C={‘A’,‘B’,… ,‘Z’,‘a’,‘b’,…,‘z’},学生基本信息表也可是一个数据对象。
数据结构:是相互之间存在一种或多种特定关系的数据元素的集合。
换句话说,数据结构是带“结构”的数据元素的集合,“结构”就是指数据元素之间存在的关系。
逻辑结构:从逻辑关系上描述数据,它与数据的存储无关,是独立于计算机的。
因此,数据的逻辑结构可以看作是从具体问题抽象出来的数学模型。
存储结构:数据对象在计算机中的存储表示,也称为物理结构。
抽象数据类型:由用户定义的,表示应用问题的数学模型,以及定义在这个模型上的一组操作的总称。
具体包括三部分:数据对象、数据对象上关系的集合和对数据对象的基本操作的集合。
2.试举一个数据结构的例子,叙述其逻辑结构和存储结构两方面的含义和相互关系。
答案:例如有一张学生基本信息表,包括学生的学号、姓名、性别、籍贯、专业等。
每个学生基本信息记录对应一个数据元素,学生记录按顺序号排列,形成了学生基本信息记录的线性序列。
数据结构(含答案)

数据结构(含答案)数据结构数据结构是计算机科学的基础知识之一,它在计算机领域中有着重要的地位。
本文将介绍数据结构的概念、常见的数据结构类型以及其应用。
同时,还会对一些常见的数据结构问题进行解答。
一、概念简介在计算机科学中,数据结构是指存储和组织数据的方式。
它关注数据元素之间的关系,以及如何对数据进行插入、删除和查询等操作。
数据结构可以分为线性结构和非线性结构两大类。
1.1 线性结构线性结构是最简单的一种数据结构,它的特点是数据元素之间存在一对一的关系。
常见的线性结构包括数组、链表、栈和队列。
- 数组是一种连续存储数据元素的结构,可以通过下标快速访问元素。
但是数组的大小固定,插入和删除操作比较耗时。
- 链表是一种通过指针连接数据元素的结构,可以动态地进行插入和删除操作。
但是链表的随机访问效率较低。
- 栈是一种先进后出(LIFO)的数据结构,只能在栈顶进行插入和删除操作。
常见的应用场景包括函数调用、表达式求值等。
- 队列是一种先进先出(FIFO)的数据结构,插入操作在队尾进行,删除操作在队头进行。
常见的应用场景包括任务调度、消息传递等。
1.2 非线性结构非线性结构中,数据元素之间的关系不是一对一的,包括树和图等结构。
- 树是一种层次结构,由节点和边组成。
树的常见应用包括文件系统、数据库索引等。
- 图是由节点和边组成的网络结构,节点之间的关系可以是任意的。
图的应用非常广泛,包括社交网络、路由算法等。
二、数据结构问题解答2.1 如何判断一个链表中是否存在环?使用快慢指针可以判断一个链表中是否存在环。
假设有两个指针,一个每次移动一步,另一个每次移动两步。
如果链表中存在环,那么快指针迟早会追上慢指针。
如果快指针到达链表尾部时都没有追上慢指针,那么链表中不存在环。
2.2 如何判断一个二叉树是否是平衡二叉树?平衡二叉树是一种左子树和右子树高度差不超过1的二叉树。
判断一个二叉树是否是平衡二叉树可以使用递归的方法。
数据结构习题(包含全部答案解析)

数据结构习题集(自编)第一章绪论一、选择题1.数据结构是一门研究非数值计算的程序设计问题中的操作对象以及它们之间的()和运算的学科。
A.结构B.关系 C.运算 D.算法2.在数据结构中,从逻辑上可以把数据结构分成()。
A.动态结构和静态结构 B.紧凑结构和非紧凑结构C.线性结构和非线性结构 D.逻辑结构和存储结构3.线性表的逻辑顺序和存储顺序总是一致的,这种说法()。
A.正确B.不正确 C.无法确定 D.以上答案都不对4.算法分析的目的是()。
A.找出算法的合理性 B.研究算法的输人与输出关系C.分析算法的有效性以求改进 D.分析算法的易懂性5. 算法的时间复杂度取决于()A.问题的规模B待处理数据的初态 C. A和B6.一个算法应该是()。
A.程序B.问题求解步骤的描述C.要满足五个基本特性 D.A和C.7. 下面关于算法说法错误的是()A.算法最终必须由计算机程序实现B.为解决某问题的算法与为该问题编写的程序含义是相同的C. 算法的可行性是指指令不能有二义性D. 以上几个都是错误的8.以下与数据的存储结构无关的术语是()。
A.循环队列 B. 链表 C. 哈希表 D. 栈9.在下面的程序段中,对x的赋值语句的频度为()for(i=0;i<n;i++)for(j=0;j<n;j++)x=x+1;nA. 2n B.n C.n2 D.log210.以下数据结构中,()是非线性数据结构A.树 B.字符串 C.队列 D.栈11. 下列数据中,()是线性数据结构。
A.哈夫曼树 B.有向无环图 C. 二叉排序树 D. 栈12.以下属于逻辑结构的是()。
A.顺序表 B. 哈希表 C.有序表 D. 单链表二、填空题1、_______是信息的载体,是对客观事物的符号表示,它能够被计算机识别、存储、加工和处理,________是对能够有效的输人到计算机中并且能够被计算机处理的符号的总称。
(数据、数据)2、数据元素是数据的______,有些情况下也称为元素、结点、顶点、记录等。
数据结构考试试题库含答案解析

数据结构考试试题库含答案解析数据结构习题集含答案⽬录⽬录 (1)选择题 (2)第⼀章绪论 (2)第⼆章线性表 (4)第三章栈和队列 (6)第四章串 (7)第五章数组和⼴义表 (8)第六章树和⼆叉树 (8)第七章图 (11)第⼋章查找 (13)第九章排序 (14)简答题 (19)第⼀章绪论 (19)第⼆章线性表 (24)第三章栈和队列 (26)第四章串 (28)第五章数组和⼴义表 (29)第六章树和⼆叉树 (31)第七章图 (36)第⼋章查找 (38)第九章排序 (39)编程题 (41)第⼀章绪论 (41)第⼆章线性表 (41)第三章栈和队列 (52)第四章串 (52)第五章数组和⼴义表 (52)第六章树和⼆叉树 (52)第七章图 (52)第⼋章查找 (52)第⼀章绪论1.数据结构这门学科是针对什么问题⽽产⽣的?(A )A、针对⾮数值计算的程序设计问题B、针对数值计算的程序设计问题C、数值计算与⾮数值计算的问题都针对D、两者都不针对2.数据结构这门学科的研究内容下⾯选项最准确的是(D )A、研究数据对象和数据之间的关系B、研究数据对象C、研究数据对象和数据的操作D、研究数据对象、数据之间的关系和操作3.某班级的学⽣成绩表中查得张三同学的各科成绩记录,其中数据结构考了90分,那么下⾯关于数据对象、数据元素、数据项描述正确的是(C )A、某班级的学⽣成绩表是数据元素,90分是数据项B、某班级的学⽣成绩表是数据对象,90分是数据元素C、某班级的学⽣成绩表是数据对象,90分是数据项D、某班级的学⽣成绩表是数据元素,90分是数据元素4.*数据结构是指(A )。
A、数据元素的组织形式B、数据类型C、数据存储结构D、数据定义5.数据在计算机存储器内表⽰时,物理地址与逻辑地址不相同,称之为(C )。
A、存储结构B、逻辑结构C、链式存储结构D、顺序存储结构6.算法分析的⽬的是(C )A、找出数据的合理性B、研究算法中的输⼊和输出关系C、分析算法效率以求改进D、分析算法的易懂性和⽂档型性7.算法分析的主要⽅法(A )。
《数据结构》各章课后作业答案

《数据结构》各章课后作业答案 第一章 绪论课后作业答案1. 简述线性结构与非线性结构的不同点。
答:线性结构反映结点间的逻辑关系是一对一的,非线性结构反映结点间的逻辑关系是多对多的。
2.分析下面各程序段的时间复杂度(每小题5分,共20分)解:1.第一个for 循环执行n+1次,第二个for 循环执行n(m+1)次,A[i][j]=0;语句执行n*m 次,此程序段总的执行次数为n+1+n*(m+1)+n*m=2nm+2n+1次。
故时间复杂度为O(n*m)。
2.算法的时间复杂度是由嵌套最深层语句的执行次数决定的,本程序段嵌套最深层语句为:s+=B[i][j];它的执行次数为n 2,所以本程序段的时间复杂度是O(n 2)。
3. 该算法的基本操作是语句x++, 其语句频度为:1111n n i i j --==∑∑=10()n i n i -=-∑=(1)2n n - 所以本程序段的时间复杂度是O(n 2)。
4.设语句执行m 次,则有3m≤n ⇒m ≤log 3n所以本程序段的时间复杂度为O(log 3n)。
第二章 线性表课后作业答案1. 填空题。
(1)在顺序表中插入或删除一个元素,需要平均移动表中一半元素,具体移动的元素个数与表长和该元素在表中的位置有关。
(2)线性表中结点的集合是 有限 的,结点间的关系是 一对一的。
(2)s=0;for (i=0; i<n; i++)for(j=0; j<n; j++) s+=B[i][j]; sum=s; 答:O (n 2)(1) for (i=0; i<n; i++) for (j=0; j<m; j++) A[i][j]=0;(3) x=0;for(i=1; i<n; i++)for (j=1; j<=n-i; j++)x++;(4)i=1;while(i<=n)i=i*3;(3)向一个长度为n的向量的第i个元素(1≤i≤n+1)之前插入一个元素时,需向后移动 n-i+1 个元素。
数据结构试题与答案及解析

数据结构试题与答案及解析导语:本文为广大数据结构学习者提供一些经典试题的答案及详细解析,帮助读者更好地理解与掌握数据结构的知识点。
以下是一些常见的试题以及对应的答案与解析。
1. 试题:请简述什么是数据结构?答案及解析:数据结构是计算机科学中研究和应用各种数据元素之间关系的一门学科,涉及到数据的组织、存储、管理和操作等方面。
数据结构为算法的设计与实现提供了基础,并在解决实际问题时起到了重要的作用。
因此,数据结构的学习对于编程能力的提升非常重要。
2. 试题:请解释什么是哈希表(Hash Table)?并简述其原理。
答案及解析:哈希表是一种常用的数据结构,其基本原理是通过将键(Key)通过哈希函数(Hash Function)映射到数组的某个位置上,实现将键与值(Value)建立一一对应关系的数据结构。
哈希表的原理比较简单,首先我们需要一个合适的哈希函数,该函数能够将键映射到数组的某个位置上。
当我们需要插入或查找键值对时,首先根据键经过哈希函数得到其对应的数组下标,然后将值存储在该位置上。
当发生冲突时(即多个键映射到同一个位置),可使用链表或其他解决冲突的方法来处理。
3. 试题:请说明线性表的定义及其特点。
答案及解析:线性表是数据结构中最基本且最常见的一种形式,其由n个数据元素构成的有序序列,特点如下:1) 元素之间呈线性关系,即每个元素只有一个直接前驱和一个直接后继。
2) 线性表的长度是固定的,且有序排列。
3) 线性表中任意两个元素之间的关系是确定的,不会发生变化。
4. 试题:请解释树的概念及其基本特点。
答案及解析:树是一种非常重要的数据结构,由n个节点组成,其中有且仅有一个特定的节点称作根节点,其余节点分成m个互不相交的子集,每个子集自身又是一个树。
树的基本特点如下:1) 树中的节点具有层次关系,从根节点开始,每个节点可以有若干子节点。
2) 每个节点有且仅有一个父节点,除了根节点。
3) 树中的任意两个节点之间都存在唯一的路径。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
做试题,没答案?上自考365,网校名师为你详细解答!全国2010年1月自学考试数据结构试题课程代码:02331一、单项选择题(本大题共15小题,每小题2分,共30分)在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。
错选、多选或未选均无分。
1.若一个算法的时间复杂度用T(n)表示,其中n的含义是()A.问题规模B.语句条数C.循环层数D.函数数量答案:A解析:常识问题2.具有线性结构的数据结构是()A.树B.图C.栈和队列D.广义表答案:C解析:顺序表、单链表、双链表、循环链表、栈和队列等都是1:1关系,是线性的。
树:结点之间1:n关系,非线性的。
广义表和图是m:n关系,非线性的。
3.将长度为n的单链表连接在长度为m的单链表之后,其算法的时间复杂度为()A.O(1) B.O(m)C.O(n) D.O(m+n)答案:B解析:链表A与链表B连接问题,可以这样考虑,链表A和链表B,我们只知道其头指针或头结点,我们连接是把链表A的尾部连接到链表B的头部,要知道链表A的尾部,就必须从链表A的头部做m次判断,得到链表A的尾部,然后直接和链表B的头部连接就可以了。
(原来链表A的尾部是指向NULL的,连接链表B就是把链表A尾部的NULL改为链表B的头结点的指针。
)4.在带头结点的双向循环链表中插入一个新结点,需要修改的指针域数量是()A.2个B.3个.C.4个D.6个答案:C解析:双向循环链表中结点与结点之间有4条线,所以插入一个新结点,需要修改指针域的数量为4条。
5.假设以数组A[60]存放循环队列的元素,其头指针是front=47,当前队列有50个元素,则队列的尾指针值为()A.3 B.37C.50 D.97答案:B解析:循环队列,front=47,则rear=(front+队列元素个数)%数组长度=(47+50)%60=37。
6.若栈采用链式存储结构,则下列说法中正确的是()A.需要判断栈满且需要判断栈空B.不需要判断栈满但需要判断栈空C.需要判断栈满但不需要判断栈空D.不需要判断栈满也不需要判断栈空答案:B解析:链栈由于采用链表方式作为存储方式,入栈时,使用malloc申请空间后,用指针相连接,所以结点个数没有限制,但是出栈时,如果栈中的元素个数为0,就不能再出栈了。
7.若串str=”Software”,其子串的数目是()A.8 B.9C.36 D.37答案:D解析:字串包括:单字符的字串:”S”、”o”等共8个,2个字符的字串”So”、”of”共7个,3个字符的字串”Sof”、”oft”等共6个,以此类推,可以知道总数量S=8+7+6+5+4+3+2+1=(1+8)*8/2=36。
最后别忘记了,空串””是任何字符串的字串,所以S=36+1=37.结论:求字符串的子串个数公式:S=(1+字符串长度)* 字符串长度/2+18.设有一个10阶的下三角矩阵A,采用行优先压缩存储方式,a ll为第一个元素,其存储地址为1000,每个元素占一个地址单元,则a85的地址为()A.1012 B.1017C.1032 D.1039答案:C解析:按行优先压缩,每一行10个元素。
又由于下标从1开始且是下三角,所以a85的前7行共有1+2+3+4+5+6+7=(1+7)*7/2=28个元素,第8行不满,列5前有5-1=4个元素,所以a85前共有28+4=32个元素。
又由于每个元素占一个地址单元,所以a85的地址=a11+32个元素的地址增量=1000+32*1=1032。
9.允许结点共享的广义表称为()A.纯表B.线性表C.递归表D.再入表答案:D解析:没有共享结点,没有递归结点的表是纯表。
有共享结点的表是再入表,有递归结点的表是递归表。
10.下列数据结构中,不属于二叉树的是()A.B树B.AVL树C.二叉排序树D.哈夫曼树答案:A解析:根据概念可以得到答案。
11.对下面有向图给出了四种可能的拓扑序列,其中错误..的是()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,3答案:C解析:根据先找没有前驱的结点的方式,找到没有前驱的结点后,后删除该结点上的连线,可以推出C是错误的。
12.以v1为起始结点对下图进行深度优先遍历,正确的遍历序列是()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,v4答案:D解析:从V1出发,根据标号最小原则,深度遍历后,容易得出D是正确的。
具体遍历方式为:V1->v2->v5->v6,v6没有出度,返回v5,v5->v7,v7没有出度,返回v5,v5的2个出度(v6和v7)都已经遍历,返回v2,v2的2个出度(v5和v6)都已经遍历,返回v1,v1->v3,v3没有出度,返回v1,v1->v4,所以最后的遍历序列为v1->v2->v5->v6->v7->v3->v4。
13.下列排序算法中不稳定的是()A.快速排序B.归并排序C.冒泡排序D.直接插入排序答案:A解析:稳定的排序算法共有4个,直插、冒泡、归并、基数,其他的都是不稳定的。
14.一个有序表为(1,3,9,12,32,41,45,62,75,77,82,95,100),当采用折半查找方法查找值32时,查找成功需要的比较次数是()A.2 B.3C.4 D.8答案:B解析:第一次查找取mid=(low+high)/2=(1+13)/2=7,如果数组名为R,则R[7]=45,32比45小,则应该在前半部分再找,所以high=mid-1=6。
第二次查找取mid=(low+high)/2=(1+6)/2=3,则R[3]=9,9比32小,应该在后半部分找。
所以low=mid+1=4。
第三次查找mid=(low+high)/2=(4+6)/2=5,则R[5]=32,32==32成立,找到了。
总共查找了3次。
15.采用ISAM组织文件的方式属于()A.链组织B.顺序组织C.散列组织D.索引组织答案:B二、填空题(本大题共10小题,每小题2分,共20分)请在每小题的空格中填上正确答案。
错填、不填均无分。
16.数据元素及其关系在计算机存储器内的表示称为_________。
答案:存储结构。
解析:数据结构包括三个部分:逻辑结构、存储结构、算法。
17.长度为n的线性表采用单链表结构存储时,在等概率情况下查找第i个元素的时间复杂度是_________。
答案: i解析:由于单链表查找,必须从头指针或头结点开始查找。
查找第一个元素时需要的时间为1次,查找第二个元素需要判断的时间为2次,…以此类推,查找第i个元素的时间为i次。
18.下面是在顺序栈上实现的一个栈基本操作,该操作的功能是_________。
typedef struct{DataType data[100];int top;}SeqStack;DataType f18(SeqStack*S){ if(StackEmpty(S))Error(”Stack is empty”);return S->data[S->top];}答案:取栈顶元素或取栈顶元素的值解析:前面是栈的定义,函数f18中,最后一句return s->data[s->top] 。
s->top是栈顶的位置,s->data[X],表示栈的X位置上的元素值。
19.在串匹配中,一般将主串称为目标串,将子串称为_________。
答案:模式串解析:概念题,记住它。
20.已知广义表C=(a(b,c),d),则:tail(head(tail(C)))= _________。
答案: ()解析:从最里面开始,tail(C)→(d),head(tail(C))→d,tail(head(tail(C))) →()。
21.用6个权值分别为6、13、18、30、7和16的结点构造一棵哈夫曼(Huffman)树,该树的带权路径长度为_________。
答案: 219解析:这6个结点作为哈夫曼树的叶子,先选取2个最小的值作为叶子,生成一个根,…可以得到最后的哈夫曼树,算一下就知道答案了。
长度=6*4+7*4+13*3+16*2+18*2+30*2=219 。
22.已知有向图如下所示,其中顶点A到顶点C的最短路径长度是_________。
答案: 35解析:由最短路径的算法,可以得出A->D->E->C是最短路径,路径长度为2+21+12=35。
23.对序列{55,46,13,05,94,17,42}进行基数排序,第一趟排序后的结果是_________。
答案: 42,13,94,55,05,46,17解析:从个位数开始排,就可以得到答案序列。
24.高度为3的3阶B-树最少的关键字总数是_________。
答案: 7解析: B树的定义如下:一棵m阶的B-树满足下列条件:(1)树中每个结点至多有m个孩子;(2) 除根结点和叶子结点外,其它每个结点至少有┌m/2┐个孩子;(3)若根结点不是叶子结点,则至少有2个孩子;(4) 所有叶子结点都出现在同一层,叶子结点不包含任何关键字信息;(5) 有k个孩子的非终端结点恰好包含有k-1个关键字。
解题思路:(1)根据树的性质可以知道根只有一个。
Count=1.(2)根据性质(3),3阶B树的根不是叶子,至少有2个孩子。
Count=1+2=3(3)根据性质(2),可以知道第2层中的每个结点,每个结点至少有┌m/2┐个孩子,即2个孩子;所以第三层上有4个结点。
Count=1+2+4=7个结点。
且每个结点中只包含1个关键字。
25.VSAM通常作为大型索引顺序文件的标准组织,其动态索引结构采用的是_________。
三、解答题(本大题共4小题,每小题5分,共20分)26.假设二叉树的RNL遍历算法定义如下:Array若二叉树非空,则依次执行如下操作:(1)遍历右子树;(2)访问根节点;(3)遍历左子树。
已知一棵二叉树如图所示,请给出其RNL遍历的结果序列。
答案: G,C,F,A,B,D。
解析:根据定义,比较容易得到该序列。
实质上是前序序列的倒转。
27.已知一个无向图G=(V,E),其中V={A,B,C,D,E,F},邻接矩阵表示如下所示。
请回答下列问题:(1)请画出对应的图G。
(2)画出图G的邻接表存储结构。
答案:如图所示。
解析:通过矩阵中的1就可以知道哪个结点与哪个结点之间的连线。
得到图之后,生成邻接表很容易的。
28.已知一组待排记录的关键字序列为(16,12,18,60,15,36,14,18,25,85),用堆排序方法建小根堆,请给出初始建堆后的序列。