电大数据结构复核习题(简答题)
国家开放大学本科末考试数据结构历年试题与参考答案15秋至19秋精选全文完整版

可编辑修改精选全文完整版国家开放大学(中央广播电视大学)2015年秋季学期“开放本科”期末考试数据结构(本)试题2016年1月一、单项选择题(每小题2分,共30分)1.对稀疏矩阵进行压缩存储,可采用三元组表,一个有10行的稀疏矩阵A共有97个零元素,其相应的三元组表共有3个元素。
该矩阵A有( )列。
A.8 C.7B.9 D.10答案:102.子串“acd”在主串“abdcacdefac”中的位置是( )。
A.3 C.7B.5 D.1答案:53.序列12,16,8,4按顺序依次进栈,按该栈的可能输出序列依次入队列,该队列的不可能输出序列是( )。
(进栈、出栈可以交替进行)。
A.16,12,8,4B.4,8,12,16C.8,4,16,12D.16,12,4,8答案:B.4,8,12,164.在一个不带头结点的链队中,假设f和r分别为队头和队尾指针,对该队列进行出队操作,并把结点的值保存在变量e中,其运算为( )。
A.e=f->data;r=r->nextB.e=f->data;r->next=rC.e=f->data;f=f->nextD.e=f一>data;f一>next=f答案:C.e=f->data;f=f->next5.数据的逻辑结构在计算机内存中的表示是( )。
A.给相关变量分配存储单元C.数据的逻辑结构B.数据的存储结构D.算法的具体体现答案:数据的存储结构6.以下说法正确的是( )。
A.线性表的链式存储结构必须占用连续的存储空间B.一种逻辑结构可以有不同的存储结构C.一种逻辑结构只能有唯一的存储结构D.线性表的顺序存储结构不必占用连续的存储空间答案:一种逻辑结构可以有不同的存储结构7.在一个单链表中要删除p所指结点的后继结点,可执行q=p一>next;和( )。
A.p一>next=q->nextB.p=q->nextC.p->next=qD.p->next=q答案:A.p一>next=q->next8.在数据结构和算法中,与所使用的计算机有关的是( )。
数据结构简答题

数据结构简答题引言概述:数据结构是计算机科学中的重要概念,它涉及到如何组织和存储数据,以便能够高效地使用和操作。
在这篇文章中,我们将回答一些关于数据结构的简答题,以帮助读者更好地理解这一概念。
一、数据结构的定义和作用1.1 数据结构的定义:数据结构是指一组数据元素及其之间的关系,它可以用来描述数据的逻辑结构和物理存储方式。
1.2 数据结构的作用:数据结构可以提供一种有效的组织和管理数据的方式,使得我们能够高效地进行数据的存储、检索和操作。
它是计算机科学中的基础,为算法设计和问题解决提供了重要的支持。
二、数据结构的分类和常见类型2.1 数据结构的分类:数据结构可以分为线性结构和非线性结构两大类。
2.1.1 线性结构:线性结构是指数据元素之间存在一对一的关系,如数组、链表和栈等。
2.1.2 非线性结构:非线性结构是指数据元素之间存在一对多或多对多的关系,如树和图等。
2.2 常见的线性结构:常见的线性结构包括数组、链表和栈。
2.2.1 数组:数组是一种连续存储数据元素的数据结构,它通过索引来访问元素,具有快速访问的特点。
2.2.2 链表:链表是一种通过指针将数据元素连接起来的数据结构,它可以动态地分配内存,具有灵活性和高效的插入和删除操作。
2.2.3 栈:栈是一种特殊的线性结构,它遵循后进先出(LIFO)的原则,只能在栈顶进行插入和删除操作,常用于函数调用和表达式求值等场景。
2.3 常见的非线性结构:常见的非线性结构包括树和图。
2.3.1 树:树是一种层次结构,由节点和边组成,它具有分支和层次的特点,常用于组织具有层次关系的数据。
2.3.2 图:图是一种由节点和边组成的网络结构,节点之间的关系可以是任意的,常用于描述复杂的关系和网络拓扑。
三、数据结构的时间复杂度和空间复杂度3.1 时间复杂度:时间复杂度是衡量算法执行时间随输入规模增长的增长率,常用大O表示法表示。
常见的时间复杂度有O(1)、O(logn)、O(n)、O(nlogn)和O(n^2)等。
数据结构简答题

数据结构简答题数据结构是计算机科学中的重要概念,用于组织和管理数据的方式。
它提供了一种存储和操作数据的方法,使得计算机程序可以高效地访问和处理数据。
本文将回答一些关于数据结构的简答题,以帮助读者更好地理解这一概念。
1. 什么是数据结构?数据结构是一种组织和存储数据的方式,它定义了数据对象之间的关系以及对这些数据对象进行操作的规则。
数据结构可以分为线性结构(如数组、链表)、树形结构(如二叉树、堆)、图形结构(如有向图、无向图)等多种类型。
2. 数据结构有何作用?数据结构的主要作用是提供一种高效的数据存储和访问方式,以满足不同的应用需求。
通过选择合适的数据结构,可以使得程序的运行效率更高,减少资源消耗,并且使得程序的逻辑更加清晰和易于理解。
3. 请举例说明线性结构和非线性结构。
线性结构是指数据元素之间存在一对一的关系,数据元素之间只有一个直接前驱和一个直接后继。
例如,数组和链表就是线性结构的典型代表。
非线性结构是指数据元素之间存在一对多或多对多的关系,数据元素之间不仅有直接前驱和直接后继,还可能存在其他关系。
例如,树和图就是非线性结构的典型代表。
4. 什么是算法?算法是解决特定问题的一系列步骤或操作的有限序列。
它描述了在给定输入下,通过执行一系列定义好的操作,可以得到期望的输出。
算法可以用于解决各种问题,如排序、查找、图形算法等。
5. 数据结构和算法之间有何关系?数据结构和算法是紧密相关的。
数据结构提供了存储和组织数据的方式,而算法则定义了对这些数据进行操作的步骤和规则。
选择合适的数据结构可以提高算法的效率,而设计高效的算法也需要考虑数据结构的选择。
6. 什么是时间复杂度和空间复杂度?时间复杂度是衡量算法执行时间的度量,它表示算法的运行时间与问题规模之间的关系。
常见的时间复杂度有O(1)、O(log n)、O(n)、O(n log n)、O(n^2)等。
空间复杂度是衡量算法所需存储空间的度量,它表示算法所需的额外空间与问题规模之间的关系。
国家开放大学电大本科《数据结构》期末试题及答案_1252数据结构电大

国家开放大学电大本科《数据结构》期末试题及答案
_1252数据结构电大
本科
一、单项选择题(每题10分,共70分)
1.下列以十进制表示的数值中,最高位为符号位的是(A)
A.-256
B.+256
C.-1024
D.+1024
2.下列关于基本排序法的描述中正确的是(D)
A.插入排序法是一种稳定排序法
B.选择排序法最坏的情况下时间复杂度为O(n2)
C.冒泡排序法最坏的情况下可以达到线性排序的时间复杂度
D.冒泡排序法和快速排序法均是不稳定的排序法
3.一个二叉树中,若结点的右孩子为空,则(C)
A.该结点一定是叶结点
B.该结点一定是树根
C.该结点的左孩子一定不为空
D.该结点的父结点一定不为空
4.已知关键字序列5,2,7,8,4,1,采用二叉树构造技术,构造出的二叉排序树中,根结点关键字为(A)
A.5
B.2
C.4
D.6
5.二叉树若当前结点的右孩子为空,则(B)
A.其后继结点为当前结点的父结点
B.其后继结点为当前结点的左孩子
C.其后继结点为当前结点的右孩子
D.其后继结点不存在
6.关于顺序存储结构,下列描述中不正确的是(B)。
数据结构简答题

数据结构简答题1. 什么是数据结构?数据结构是一种组织和存储数据的方式,它定义了数据元素之间的关系、操作和存储方式。
数据结构可以帮助我们有效地组织和管理数据,使得数据的存储和访问更加高效和方便。
2. 数据结构的分类有哪些?数据结构可以分为以下几类:- 线性结构:线性结构中的数据元素之间存在一对一的关系,例如数组、链表和栈等。
- 非线性结构:非线性结构中的数据元素之间存在一对多或多对多的关系,例如树和图等。
- 静态结构:静态结构的大小和结构在编译时就确定,不可改变,例如数组。
- 动态结构:动态结构的大小和结构可以在运行时动态地改变,例如链表。
3. 什么是数据结构的时间复杂度和空间复杂度?时间复杂度是衡量算法执行时间的度量,表示算法执行所需要的时间资源。
通常用大O表示法来表示时间复杂度,例如O(1)、O(log n)、O(n)等。
空间复杂度是衡量算法执行所需要的存储空间的度量,表示算法执行所需要的额外空间资源。
同样使用大O表示法来表示空间复杂度,例如O(1)、O(log n)、O(n)等。
4. 什么是数组?数组是一种线性数据结构,它由一组相同类型的元素组成,这些元素在内存中是连续存储的。
数组可以通过索引来访问和修改元素,索引从0开始。
5. 数组的优缺点是什么?数组的优点包括:- 随机访问:可以通过索引快速访问和修改元素。
- 内存连续:元素在内存中连续存储,可以利用CPU缓存提高访问效率。
- 简单易用:数组的操作相对简单,容易理解和实现。
数组的缺点包括:- 大小固定:数组的大小在创建时就确定,无法动态改变。
- 插入和删除效率低:插入和删除元素时,需要移动其他元素,效率较低。
- 内存浪费:如果数组分配了较大的空间但只使用了一部分,会造成内存浪费。
6. 什么是链表?链表是一种线性数据结构,它由一系列节点组成,每个节点包含数据和指向下一个节点的指针。
链表中的节点在内存中可以是不连续存储的,通过指针将它们连接起来。
电大数据结构复习题(选择题)

电大数据结构复核习题(选择题)一、单项选择题。
1、在数据结构中,从逻辑上可以把数据结构分为(C)。
A.动态结构和静态结构B.紧凑结构和非紧凑结构C.线性结构和非线性结构D.内部结构和外部机构2、下列说法中,不正确的是(D)。
A.数据元素是数据的基本单位B.数据项是数据中不可分割的最小可标识单位C.数据可有若干个数据元素构成D.数据项可由若干个数据元素构成3、一个存储结点存储一个(B)。
A.数据项B.数据元素C.数据结构D.数据类型4、每个存储结点只存储一个数据元素,各结点存储在连续的存储空间,该存储方式是(A)存储方式。
A.顺序B.链接C.索引D.散列5、每个存储结点不仅含有一个数据元素,还包含一组指针,该存储方式是(B)存储方式。
A.顺序B.链接C.索引D.散列6、数据结构中,与所使用的计算机无关的是数据的(C)。
A.存储结构B.物理结构C.逻辑结构D.物理和存储结构7、下列的叙述中,不属于算法特性的是(D)。
A.有穷性B.输入性C.可行性D.可读性8、算法分析的目的是(C)。
A.找出数据结构的合理性B.研究算法中的输入和输出的关系C.分析算法的效率以求改进D.分析算法的易懂性和文档性9、数据结构是一门研究计算机中(B)对象及其关系的科学。
A.数值运算B.非数值运算C.集合D.非集合10、算法的时间复杂度与(C)有关。
A.所使用的计算机B.与计算机的操作系统C.与算法本身D.与数据结构11、把数据存储到计算机中,并具体体现数据元素间的逻辑结构称为(B)。
A.逻辑结构B.物理结构C.算法的具体实现D.给相关变量分配存储单元12、设有一个长度为n的顺序表,要在第i个元素之前(也就是插入元素作为新表的第i个元素),则移动元素个数为(A)。
A.n-i+1 B.n-i C.n-i-1 D.i13、设有一个长度为n的顺序表,要删除第i个元素移动元素的个数为(B)。
A.n-i+1 B.n-i C.n-i-1 D.i14、在一个单链表中,p、q分别指向表中两个相邻的结点,且q所指结点是p所指结点的直接后继,现要删除q所指结点,可用语句(C)。
国家开放大学电大《数据结构》网络课判断题题库及答案

国家开放大学电大《数据结构》网络课判断题题库及答案判断题题目21 数据元素可以有一个或多个数据项组成。
选择一项:对错题目22 数据元素之间的抽象关系称为物理结构。
选择一项:对错题目23 数据的逻辑结构在计算机中的表示称为逻辑结构。
选择一项:对错题目24 数据的逻辑结构是与存储该结构的计算机相关的。
选择一项:对错题目25 数据结构中,元素之间存在多对多的关系称为树状结构。
选择一项:对错题目26 通常可以把一本含有不同章节的书的目录结构抽象成线性结构。
选择一项:对错通常可以把某城市中务公交站点间的线路图抽象成树型结构。
选择一项:对错题目28 设有一个不带头结点的单向循环链表,结点的指针域为next,指针p指向尾结点,现要使p指向第一个结点,可用语句 p=p->next: o 选择一项:对错题目29 设有一个箪向链表,结点的指针域为next,头指针为head, p指向尾结点,为了使该单向链表改为单向循环链表, 可用语句 p->next=head。
选择一项:对错题目30 设有一个单向循环链表,结点的指针域为next,头指针为head,指针p指向表中某结点,若逻辑表达式p- >next=head;的结果为真,则p所指结点为尾结点。
选择一项:对错题目31 要在一个单向链表中P所指向的结点之后插入一个s所指向的新结点,若链表中结点的指针域为next,可执行 p->next=s; s->next= p->next:的操作。
选择一项:对错题目32 要在一个单向链表中删除P所指向的结点,已知q指向P所指结点的直接前驱结点,若链表中结点的指针域为 next,则可执行 q->next= p->next;错题目33 要在一个带头结点的单向循环链表中删除头结点,得到一个新的不带头结点的单向循环链表,若结点的指针域为 next,头指针为head,尾指针为 p、则可执行 head=head-> next; p->next=head:。
2017年电大电大数据结构形成性考核册简答汇总

1.简述数据的逻辑结构和存储结构的区别与联系,它们如何影响算法的设计与实现?答:若用结点表示某个数据元素,则结点与结点之间的逻辑关系就称为数据的逻辑结构。
数据在计算机中的存储表示称为数据的存储结构。
可见,数据的逻辑结构是反映数据之间的固有关系,而数据的存储结构是数据在计算机中的存储表示。
尽管因采用的存储结构不同,逻辑上相邻的结点,其物理地址未必相同,但可通过结点的内部信息,找到其相邻的结点,从而保留了逻辑结构的特点。
采用的存储结构不同,对数据的操作在灵活性,算法复杂度等方面差别较大。
2.解释顺序存储结构和链式存储结构的特点,并比较顺序存储结构和链式存储结构的优缺点。
答:顺序结构存储时,相邻数据元素的存放地址也相邻,即逻辑结构和存储结构是统一的,,要求内存中存储单元的地址必须是连续的。
优点:一般情况下,存储密度大,存储空间利用率高。
缺点:(1)在做插入和删除操作时,需移动大量元素;(2)由于难以估计,必须预先分配较大的空间,往往使存储空间不能得到充分利用;(3)表的容量难以扩充。
链式结构存储时,相邻数据元素可随意存放,所占空间分为两部分,一部分存放结点值,另一部分存放表示结点间关系的指针。
优点:插入和删除元素时很方便,使用灵活。
缺点:存储密度小,存储空间利用率低。
3.什么情况下用顺序表比链表好?答:顺序表适于做查找这样的静态操作,链表适于做插入和删除这样的动态操作。
如果线性表的变化长度变化不大,且其主要操作是查找,则采用顺序表;如果线性表的长度变化较大,且其主要操作是插入、删除操作,则采用链表。
4.头指针、头结点、第一个结点(或称首元结点)的区别是什么?头结点是在链表的开始结点之前附加的一个结点;第一个结点(或称首元结点)是链表中存储第一个数据元素的结点;头指针是指向链表中第一个结点(或为头结点或为首元结点)的指针。
5.解释带头结点的单链表和不带头结点的单链表的区别。
答:带头结点的单链表和不带头结点的单链表的区别主要体现在其结构上和算法操作上。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
电大数据结构复核习题(简答题)1、简述数据的逻辑结构和存储结构的区别与联系,它们如何影响算法的设计与实现?答:若用结点表示某个数据元素,则结点与结点之间的逻辑关系就称为数据的逻辑结构。
数据在计算机中的存储表示称为数据的存储结构。
可见,数据的逻辑结构是反映数据之间的固有关系,而数据的存储结构是数据在计算机中的存储表示。
尽管因采用的存储结构不同,逻辑上相邻的结点,其物理地址未必相同,但可通过结点的内部信息,找到其相邻的结点,从而保留了逻辑结构的特点。
采用的存储结构不同,对数据的操作在灵活性,算法复杂度等方面差别较大。
2、解释顺序存储结构和链式存储结构的特点,并比较顺序存储结构和链式存储结构的优缺点。
答:顺序结构存储时,相邻数据元素的存放地址也相邻,即逻辑结构和存储结构是统一的,,要求内存中存储单元的地址必须是连续的。
优点:一般情况下,存储密度大,存储空间利用率高。
缺点:(1)在做插入和删除操作时,需移动大量元素;(2)由于难以估计,必须预先分配较大的空间,往往使存储空间不能得到充分利用;(3)表的容量难以扩充。
链式结构存储时,相邻数据元素可随意存放,所占空间分为两部分,一部分存放结点值,另一部分存放表示结点间关系的指针。
优点:插入和删除元素时很方便,使用灵活。
缺点:存储密度小,存储空间利用率低。
3、什么情况下用顺序表比链表好?答:顺序表适于做查找这样的静态操作,链表适于做插入和删除这样的动态操作。
如果线性表的变化长度变化不大,且其主要操作是查找,则采用顺序表;如果线性表的长度变化较大,且其主要操作是插入、删除操作,则采用链表。
4、解释头结点、第一个结点(或称首元结点)、头指针这三个概念的区别?答:头结点是在链表的开始结点之前附加的一个结点;第一个结点(或称首元结点)是链表中存储第一个数据元素的结点;头指针是指向链表中第一个结点(或为头结点或为首元结点)的指针。
5、解释带头结点的单链表和不带头结点的单链表的区别。
答:带头结点的单链表和不带头结点的单链表的区别主要体现在其结构上和算法操作上。
在结构上,带头结点的单链表,不管链表是否为空,均含有一个头结点,不带头结点的单链表不含头结点。
在操作上,带头结点的单链表的初始化为申请一个头结点。
无论插入或删除的位置是地第一个结点还是其他结点,算法步骤都相同。
不带头结点的单链表,其算法步骤要分别考虑插入或删除的位置是第一个结点还是其他结点。
因为两种情况的算法步骤不同。
6、与单链表相比,双向循环链表有哪些优点?答:双向循环链表设置了指向前驱和后继的指针,所用的地址空间增加,以空间复杂度代价换取时间复杂度的提高。
双向循环链表可以从任一结点开始遍历整个链表。
在动态内存管理中,应用双向循环链表可以从上次查找过的结点开始继续查找可用结点,而单链表却每次都需要从表头开始查找。
相比之下,双向循环链表的时间效率更高。
7、简述栈和一般线性表的区别。
答:栈是一种先进后出的线性表,栈的插入和删除操作都只能在栈顶进行,而一般的线性表可以在线性表的任何位置进行插入和删除操作。
8、简述队列和一般线性表的区别。
答:队列是一种先进先出的线性表,队列的插入只能在队尾进行,队列的删除只能在队头进行,而一般的线性表可以在线性表的任何位置进行插入和删除操作。
9、链栈中为何不设头结点?答:因为链栈只在链头插入和删除结点,不可能在链表中间插入和删除结点,算法实现很简单,所以一般不设置头结点。
10、利用一个栈,则:(1)如果输入序列由A,B,C组成,试给出全部可能的输出序列和不可能的输出序列。
(2)如果输入序列由A,B,C,D组成,试给出全部可能的输出序列和不可能的输出序列。
答:(1)栈的操作特点是后进先出,因此输出序列有:A入,A出,B入,B出,C入C出,输出序列为ABC。
A入,A出,B入,C入,C出,B出,输出序列为ACB。
A入,B入,B出,A出,C入,C出,输出序列为BAC。
A入,B入,B出,C入,C出,A出,输出序列为BCA。
A入,B入,C入,C出,B出,A出,输出序列为CBA。
由A,B,C组成的数据项,除上述五个不同的组合外,还有一个C,A,B组合。
但不可能先把C出栈,再把A出栈,(A不在栈顶位置),最后把B出栈,所以序列CAB不可能由输入序列A,B,C 通过栈得到。
(2)按照上述方法,可能的输出序列有:ABCD,ABDC,ACBD,ACDB,ADCB,BACD,BADC,BCAD,BCDA,BDCA,CBAD,CBDA,CDBA,DCBA。
不可能的输出序列有:DABC,ADBC,DACB,DBAC,BDAC,DBCA,DCAB,CDAB,CADB,CABD11、用S表示入栈操作,X表示出栈操作,若元素入栈顺序为1234,为了得到1342出栈顺序,相应的S和X操作串是什么?答:应是SXSSXSXX。
各操作结果如下:S 1入栈X 1出栈输出序列:1S 2入栈S 3入栈X 3出栈输出序列:13S 4入栈X 4出栈输出序列:134X 2出栈输出序列:134212、有5个元素,其入栈次序为:A、B、C、D、E,在各种可能的出栈次序中,以元素C、D最先的次序有哪几个?答:从题中可知,要使C第一个且D第二个出栈,应是A入栈,B入栈,C入栈,C出栈,D入栈。
之后可以有以下几种情况:(1)B出栈,A出栈,E入栈,E出栈,输出序列为:CDBAE。
(2)B出栈,E入栈,E出栈,A 出栈,输出序列为CDBEA。
(3)E入栈,E出栈,B出栈,A出栈,输出序列为CDEBA所以可能的次序有:CDBAE,CDBEA,CDEBA13、写出以下运算式的后缀算术运算式(1)3x2+x-1/x+5 (2)(A+B)*C-D/(E+F)+G答;对应的后缀算术运算式:(1)3x2^*x+1x/-5+ (2)AB+C*DEF+/-G+14、在什么情况下可以用递归解决问题?在写递归程序时应注意什么?答:该问题必须可以被分解为和该问题具有相同逻辑结构的子问题,即具有递归性质。
书写递归程序的要点如下:(1)问题与自身的子问题具有类同的性质,被定义项在定义中的应用具有更小的尺度。
(2)被定义项在最小尺度上有直接解。
递归算法设计的原则是用自身的简单情况来定义自身,一步比一步简单,确定递归的控制条件非常重要,设计递归算法的方法是:(1)寻找方法,将问题化为原问题的子问题求解(例如n!=n*(n-1)!)。
(2)设计递归出口,确定递归终止条件(例如求解n!时,当n=1时,n!=1).15、简述广义表和线性表的区别和联系。
答:广义表是线性表的的推广,它也是n(n>0)个元素a1 ,a2…ai…an的有限序列,其中ai或者是原子或者是一个广义表。
所以,广义表是一种递归数据结构,而线性表没有这种特性,线性表可以看成广义表的特殊情况,当ai都是原子时,广义表退化成线性表。
16、写出如下图所示的二叉树的先序、中序和后序遍历序列。
答:二叉树的定义是递归的,所以,一棵二叉树可看作由根结点,左子树和右子树这三个基本部分组成,即依次遍历整个二叉树,又左子树或者右子树又可看作一棵二叉树并继续分为根结点、左子树和右子树三个部分…..,这样划分一直进行到树叶结点。
(1)先序为“根左右”,先序序列为:fdbacegihl(2)中序为“左根右”,中序序列为:abcdefghij(3)后序为“左右根”,后序序列为:acbedhjigf17、已知某二叉树的先序遍历结果是:A,B,D,G,C,E,H,L,I,K,M,F和J,它的中序遍历结果是:G,D,B,A,L,H,E,K,I,M,C,F和J,请画出这棵二叉树,并写出该该二叉树后序遍历的结果。
答:二叉树图形表示如下:该二叉树后序遍历的结果是:G D B L H K M I E J F C A18、已知一棵完全二叉树共有892个结点,求(1)树的高度(2)叶子结点数(3)单支结点数(4)最后一个非终端结点的序号答:(1)已知深度为k的二叉树最多有2k-1个结点(K≥1),29-1<892< 210-1,故树的高度为10(2)对于完全二叉树来说,度为1的结点只能是0或1因为n=n0+n1+n2和n0=n2+1得:设n1=0,892=n0+0+n2=2n2+1 得n2不为整数出错设n1=1,892=n0+1+n2=2n2+2得n2 =445→n0=n2+1=446叶子结点数为446。
(3)由⑵得单支结点数为1(4)对于n个结点的完全二叉树,最后一个树叶结点,即序号为n的叶结点其双亲结点即为最后一个非终端结点,序号为892/2=446。
19、给出满足下列条件的所有二叉树。
(1)先序和中序相同(2)中序和后序相同(3)先序和后序相同答:(1)先序序列和中序序列相同的二叉树为空树或任一结点均无左孩子的非空二叉树(2)中序和后序序列相同的二叉树为空树或任一结点均无右孩子的非空二叉树(3)先序和后序序列相同的二叉树为空树或仅有一个结点20、假设通信用的报文由9个字母A、B、C、D、E、F、G、H和I组成,它们出现的频率分别是:10、20、5、15、8、2、3、7和30。
请请用这9个字母出现的频率作为权值求:(1)设计一棵哈夫曼树;(2)计算其带权路径长度WPL;(3)写出每个字符的哈夫曼编码。
答:(1)哈夫曼树如图B-4所示。
图B-4(2)其带权路径长度WPL值为270。
(3)每个字符的哈夫曼编码为:A:100, B:11, C:1010, D:000, E:0010, F:10110, G:10111, H:0011, I:0121、请根据以下带权有向图G(1)给出从结点v1出发分别按深度优先搜索遍历G和广度优先搜索遍历G所得的结点序列;(2)给出G的一个拓扑序列;(3)给出从结点v1到结点v8的最短路径。
答:(1)深度优先遍历:v1,v2,v3,v8,v5,v7,v4,v6 广度优先遍历:v1,v2,v4,v6,v3,v5,v7,v8(2)G的拓扑序列为:v1,v2,v4,v6,v5,v5,v3,v5,v7,v8(3)最短路径为:v1,v2,v5,v7,v822、已知无向图G描述如下:G=(V ,E )V={V1,V2,V3,V4,V5}E={(V1,V2),(V1,V4),(V2,V4),(V3,V4),(V2,V5),(V3,V4),(V3,V5)} (1)画出G 的图示;(2)然后给出G 的邻接矩阵和邻接表; (3)写出每个顶点的度。
答:(1)g1的图示和图g1的邻接表如下图所示。
图G(2)图G 的邻接矩阵如下图所示:图G 的邻接矩阵 图G 的邻接表(3)V1、V2、V3、V4、V5的度分别为:2,3,2,3,2 23、 回答下列问题:(1)对于存储结构采用邻接矩阵的无向图,如何判断下列有关问题? ①图中有多少条边?答:矩阵中所有非0元素的个数的一半。