数据结构-综合题
- 格式:doc
- 大小:273.00 KB
- 文档页数:3
∑∑∑====n 1i n 1j 3n 1k n 162)1)(n n(n 21)n(n 2161)1)(2n n(n 21 i 21i 2121)i(i j 1n 1i n1i n 1i 2n 1i i 1j n 1i i 1j j 1k ++=++++==+=⎪⎭⎫ ⎝⎛+==∑∑∑∑∑∑∑∑========第一章 综合练习2.什么是数据结构? 有关数据结构的讨论涉及哪三个方面?【解答】数据结构是指数据以及相互之间的关系。
记为:数据结构 = { D, R }。
其中,D 是某一数据对象,R 是该对象中所有数据成员之间的关系的有限集合。
有关数据结构的讨论一般涉及以下三方面的内容:① 数据成员以及它们相互之间的逻辑关系,也称为数据的逻辑结构,简称为数据结构; ② 数据成员及其关系在计算机存储器内的存储表示,也称为数据的物理结构,简称为存储结构;③ 施加于该数据结构上的操作。
数据的逻辑结构是从逻辑关系上描述数据,它与数据的存储不是一码事,是与计算机存储无关的。
因此,数据的逻辑结构可以看作是从具体问题中抽象出来的数据模型,是数据的应用视图。
数据的存储结构是逻辑数据结构在计算机存储器中的实现(亦称为映像),它是依赖于计算机的,是数据的物理视图。
数据的操作是定义于数据逻辑结构上的一组运算,每种数据结构都有一个运算的集合。
例如搜索、插入、删除、更新、排序等。
5.设n 为正整数, 分析下列各程序段中加下划线的语句的程序步数。
(1) for (int i=1;i<=n ;i++)for (int j=1;j<=n ;j++){ c[i][j]=0.0;for (int k=1;k<=n ;k++)c[i][j]=c[i][j]+a[i][k]*b[k][j];}(2) x=0; y=0;for (i=1;i<=n ;i++)for (j=1;j<=i ;j++)for (k=1;k<=j ;k++)x=x+y ;(3) i=1; j=1;while (i<=n&&j<=n){ i=i+1; j=j+i ; }(4) i=1;do {for (j=1;j<=n ;j++) i=i+j ;} while (i<100+n);【解答】(1) (2)n j 1n j 1n(n 1)x 1 i 1j 12n(n 1)n(n 1)n(n 1)n(n 1)x 2 i 1j 1122222==+==+=+++++⎛⎫⎛⎫⎛⎫==++=++=+ ⎪ ⎪ ⎪⎝⎭⎝⎭⎝⎭∑∑次数时,时,n j 1n(n 1)n(n 1)x 3, i 12j 1322=⎛+⎫+⎛⎫⎛⎫==++=+ ⎪ ⎪ ⎪⎝⎭⎝⎭⎝⎭∑时(3) i = 1时,i = 2,j = j + i = 1 + 2 = 2 + 1,i = 2时,i = 3,j = j + i = ( 2 + 1 ) + 3 = 3 + 1 + 2,i = 3时,i = 4,j = j + i = ( 3 + 1 + 2 ) + 4 = 4 + 1 + 2 + 3,i = 4时,i = 5,j = j + i = ( 4 + 1 + 2 + 3 ) + 5 = 5 + 1 + 2 + 3 + 4,……i = k 时,i = k + 1,j = j + i = ( k + 1 ) + ( 1 + 2 + 3 + 4 + … + k ),解出满足上述不等式的k 值,即为语句i = i + 1的程序步数。
综合练习一、单项选择题1.数据在计算机存储器内表示时,物理地址与逻辑地址不相同的,称之为(C ).A.存储结构B。
逻辑结构C.链式存储结构D。
顺序存储结构2.设语句x++的时间是单位时间,则以下语句的时间复杂度为( B ).for(i=1; i<=n; i++)for(j=i;j〈=n;j++)x++;A。
O(1) B.O(2n)C。
O(n) D.O(3n)3.链式存储结构的最大优点是( D )。
A。
便于随机存取B。
存储密度高C.无需预分配空间D.便于进行插入和删除操作4.假设在顺序表{a0,a1,……,a n-1}中,每一个数据元素所占的存储单元的数目为4,且第0个数据元素的存储地址为100,则第7个数据元素的存储地址是( D ).A。
106 B. 107 C。
124 D.1285.在线性表中若经常要存取第i个数据元素及其前趋,则宜采用( A )存储方式.A.顺序表B. 带头结点的单链表C。
不带头结点的单链表 D. 循环单链表6.在链表中若经常要删除表中最后一个结点或在最后一个结点之后插入一个新结点,则宜采用( C )存储方式。
A.顺序表B。
用头指针标识的循环单链表C。
用尾指针标识的循环单链表D。
双向链表7.在一个含有n个结点的有序单链表中插入一个新结点,使单链表仍然保持有序的算法的时间复杂度是( C )。
O(1) B。
O(log2n) C。
O(n) D。
O(n2)8.要将一个顺序表{a0,a1,……,a n—1}中第i个数据元素a i(0≤i≤n—1)删除,需要移动( B )个数据元素。
A.i B。
n—i-1 C. n-i D. n—i+19.在栈中存取数据的原则是( B )。
A。
先进先出 B。
先进后出C。
后进后出 D。
没有限制10.若将整数1、2、3、4依次进栈,则不可能得到的出栈序列是( D )。
A.1234 B. 1324 C. 4321 D. 142311.在链栈中,进行出栈操作时(B )。
数据结构(本)期末综合练习(2022年6月)期末综合练习一一、单项选择题1.深度为5的完全二叉树共有20个结点,则第5层上有()个结点(根所在结点为第一层)。
A.3B.8C.5D.62.同一种逻辑结构()。
A.只能有唯一的存储结构B.可以有不同的存储结构C.只能表示某一种数据元素之间的关系D.以上三种说法均不正确3.已知一个图的边数为m,则该图的所有顶点的度数之和为()。
A.2mB.mC.2m+1D.m/24.链表所具备的特点是()。
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.顺序表11.散列查找的原理是()。
A.在待查记录的关键字值与该记录的存储位置之间建立确定的对应关系B.按待查记录的关键字有序的顺序方式存储C.按关键字值的比较进行查找D.基于二分查找的方法12.算法的时间复杂度与()有关。
A.所使用的计算机B.与计算机的操作系统C.与算法本身D.与数据结构13.对n个元素进行冒泡排序若某趟冒泡中只进行了()次元素间的交换,则表明序列已经排好序。
A.1B.2C.0D.n-114.设有一个长度为n的顺序表,要删除第i个元素需移动元素的个数为()。
数据结构习题习题一一、选择题1、数据结构是一门研究非数值计算的程序设计问题中的操作对象以及它们之间的(B)和运算的学科。
A.结构B.关系C.运算D.算法2、在数据结构中,从逻辑上可以把数据结构分成(C)。
A.动态结构和静态结构B.紧凑结构和非紧凑结构C.线性结构和非线性结构D.逻辑结构和存储结构3、线性表的逻辑顺序和存储顺序总是一致的,这种说法(B)。
A.正确B.不正确C.无法确定D.以上答案都不对4、算法分析的目的是(C)。
A.找出算法的合理性B.研究算法的输人与输出关系C.分析算法的有效性以求改进D.分析算法的易懂性二、填空题1、数据是信息的载体,是对客观事物的符号表示,它能够被计算机识别、存储、加工和处理,数据是对能够有效的输人到计算机中并且能够被计算机处理的符号的总称。
例如,数学中所用到的整数和实数,文本编辑所用到的字符串等。
2、数据元素是数据的基本单位,有些情况下也称为元素、结点、顶点、记录等。
3、数据项是数据不可分割的最小单元,是具有独立含义的最小标识单位。
例如构成一个数据元素的字段、域、属性等都可称之为_数据项。
4、简而言之,数据结构是数据之间的相互关系,即数据的组织形式。
5、数据的逻辑结构是指数据之间的逻辑关系。
逻辑结构是从逻辑关系上描述数据,它与具体存储无关,是独立于计算机的。
因此逻辑结构可以看作是从具体问题抽象出来的数学模型。
6、数据的存储结构指数据元素及其关系在计算机存储器内的表示。
存储结构是逻辑结构在计算机里的实现,也称之为映像。
7、数据的运算是指对数据施加的操作。
它定义在数据的逻辑结构之上,每种逻辑结构都有一个数据的运算。
常用的有:查找、排序、插人、删除、更新等操作。
8、数据逻辑结构可以分为四种基本的类型,集合结构中的元素除了仅仅只是同属于一个集合_,不存在什么关系。
9、数据逻辑结构的四种基本类型中,线性结构_中的元素是一种一对一的关系,这种结构的特征是:若结构是非空集,则有且只有一个开始结点和一个终端结点,并且所有结点最多只能有一个直接前驱和一个直接后继。
《数据结构》期末考试试卷试题及答案一、选择题(每题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、简述下列概念:数据、数据元素、数据类型、数据结构、逻辑结构、存储结构、线性结构、非线性结构。
●数据:指能够被计算机识别、存储和加工处理的信息载体。
●数据元素:就是数据的基本单位,在某些情况下,数据元素也称为元素、结点、顶点、记录。
数据元素有时可以由若干数据项组成。
●数据类型:是一个值的集合以及在这些值上定义的一组操作的总称。
通常数据类型可以看作是程序设计语言中已实现的数据结构。
●数据结构:指的是数据之间的相互关系,即数据的组织形式。
一般包括三个方面的内容:数据的逻辑结构、存储结构和数据的运算。
●逻辑结构:指数据元素之间的逻辑关系。
●存储结构:数据元素及其关系在计算机存储器内的表示,称为数据的存储结构.●线性结构:数据逻辑结构中的一类。
它的特征是若结构为非空集,则该结构有且只有一个开始结点和一3、常用的存储表示方法有哪几种? 答:常用的存储表示方法有四种:●顺序存储方法:它是把逻辑上相邻的结点存储在物理位置相邻的存储单元里,结点间的逻辑关系由存储单元的邻接关系来体现。
由此得到的存储表示称为顺序存储结构,通常借助程序语言的数组描述。
●链接存储方法:它不要求逻辑上相邻的结点在物理位置上亦相邻,结点间的逻辑关系是由附加的指针字段表示。
由此得到的存储表示称为链式存储结构,通常借助于程序语言的指针类型描述。
●索引存储方法:除建立存储结点信息外,还建立附加的索引表来标识结点的地址。
组成索引表的索引项由结点的关键字和地址组成。
若每个结点在索引表中都有一个索引项,则该索引表称之为稠密索引(Dense Index)。
若一组结点在索引表中只对应一个索引项,则该索引表称为稀疏索引。
●散列存储方法:就是根据结点的关键字直接计算出该结点的存储地址15、简述栈和线性表的差别。
解:线性表是具有相同特性的数据元素的一个有限序列。
栈是限定仅在表尾进行插入或删除操作的线性表。
17、简述队列和堆栈这两种数据类型的相同点和差异处。
数据结构(本)期末综合练习综合练习一一、单项选择题1.设有头指针为head的带有头结点的非空单向循环链表, 指针p指向其尾结点, 要删除头结点,并使其仍为单向循环链表,则可利用下述语句head =head->next ;()。
A.p =head; B.p=NULL; C.p->next =head; D.head=p;2.在一个单链表中p指向结点a, q指向结点a的直接后继结点b,要删除结点b,可执行()。
A.p->next=q->next ; B.p=q->next;C.p->next=q; D.p->next=q;3. 以下说法不正确的是A. 线性表的链式存储结构不必占用连续的存储空间B.一种逻辑结构只能有唯一的存储结构C. 一种逻辑结构可以有不同的存储结构D.线性表的顺序存储结构必须占用连续的存储空间4.在一个单向链表中,在p所指结点之后插入一个s所指的结点时,可执行();和p->next=s;A.p= s; B. p->next=s->next;C.p=s->next; D. s->next=p->next;5.把数据存储到计算机中,并具体体现( )称为物理结构。
A. 数据元素间的逻辑关系B.数据的处理方法C.数据的性质D.数据的运算6.设有一个长度为23的顺序表,要删除第8个元素需移动元素的个数为()。
A.16 B.14 C.15 D.137.链表所具备的特点之一是()。
A.可以随机访问任一结点 B.需要占用连续的存储空间C.插入元素的操作不需要移动元素 D.删除元素的操作需要移动元素8.设一棵有8个叶结点的二叉树,度数为1的结点有3个,则该树共有()个结点。
A.20 B.18 C.17 D.169.图状结构中数据元素的位置之间存在()的关系。
A.一对一 B.多对多C.一对多 D.每一个元素都有一个直接前驱和一个直接后继10.一棵具有5层的完全二叉树,最后一层有4个结点,则该树总共有()个结点。
一、单选题(每题 2 分,共20分)1.栈和队列的共同特点是( A )。
A.只允许在端点处插入和删除元素B.都是先进后出C.都是先进先出D.没有共同点2.用链接方式存储的队列,在进行插入运算时( D ).A. 仅修改头指针B. 头、尾指针都要修改C. 仅修改尾指针D.头、尾指针可能都要修改3.以下数据结构中哪一个是非线性结构?( D )A. 队列B. 栈C. 线性表D. 二叉树4.设有一个二维数组A[m][n],假设A[0][0]存放位置在644(10),A[2][2]存放位置在676(10),每个元素占一个空间,问A[3][3](10)存放在什么位置?脚注(10)表示用10进制表示。
( C )A.688 B.678 C.692 D.6965.树最适合用来表示( C )。
A.有序数据元素B.无序数据元素C.元素之间具有分支层次关系的数据D.元素之间无联系的数据6.二叉树的第k层的结点数最多为( D ).A.2k-1 B.2K+1 C.2K-1 D. 2k-17.若有18个元素的有序表存放在一维数组A[19]中,第一个元素放A[1]中,现进行二分查找,则查找A[3]的比较序列的下标依次为( C D)A. 1,2,3B. 9,5,2,3C. 9,5,3D. 9,4,2,38.对n个记录的文件进行快速排序,所需要的辅助存储空间大致为( C )A. O(1)B. O(n)C. O(1og2n)D. O(n2)9.对于线性表(7,34,55,25,64,46,20,10)进行散列存储时,若选用H(K)=K %9作为散列函数,则散列地址为1的元素有( D )个,A.1 B.2 C.3 D.410.设有6个结点的无向图,该图至少应有( A )条边才能确保是一个连通图。
A.5B.6C.7D.8二、填空题(每空1分,共10分)1.一个算法的时间复杂度为(n3+n2log2n+14n)/n2,其数量级表示为____O(n)____。
数据结构习题集一、选择题1.数据结构中所定义的数据元素,是用于表示数据的。
(C)A.最小单位B.最大单位C.基本单位D.不可分割的单位2.从逻辑上可以把数据结构分为(C)A.动态结构、静态结构B.顺序结构、链式结构C.线性结构、非线性结构D.初等结构、构造型结构3.当待排序序列中记录数较少或基本有序时,最适合的排序方法为(A )A.直接插入排序法B.快速排序法C.堆排序法D.归并排序法4.关于串的的叙述,不正确的是( B)A.串是字符的有限序列B.空串是由空格构成的串C.替换是串的一种重要运算D.串既可以采用顺序存储,也可以采用链式存储5.带表头结点链队列的队头和队尾指针分别为front和rear,则判断队空的条件为(A )A.front==rear B.front!=NULL C.rear!=NULL D.front==NULL6.若构造一棵具有n个结点的二叉排序树,最坏的情况下其深度不会超过(B)A.n/2B.nC.(n+1)/2D.n+17.将两个各有n个元素的有序表合并成一个有序表,其最少的比较次数为(A)A.nB.2n-1C.2nD.n28.设顺序表有19个元素,第一个元素的地址为200,且每个元素占3个字节,则第14个元素的存储地址为(B )A.236B.239C.242D.2459.一个栈的入栈序列是a,b,c,d,e,则栈的输出序列不可能是(A )A.dceabB.decbaC.edcbaD.abcde10.元素大小为1个单元,容量为n个单元的非空顺序栈中,以地址高端为栈底,以top作为栈顶指针,则出栈处理后,top的值应修改为(D )A.top=topB.top=n-1C.top=top-1D.top=top+111.设有一个10阶的对称矩阵A,采用压缩存储方式以行序为主序存储,a00为第一个元素,其存储地址为0,每个元素占有1个存储地址空间,则a45的地址为(B)A.13B.35C.17D.3612.栈和队列( C )A.共同之处在于二者都是先进先出的特殊的线性表B.共同之处在于二者都是先进后出的特殊的线性表C.共同之处在于二者都只允许在顶端执行删除操作D.没有共同之处13.含有n个结点的二叉树用二叉链表表示时,空指针域个数为(C )A.n-1B.nC.n+1D.n+214.对一棵有100个结点的完全二叉树按层序编号,则编号为49的结点,它的左孩子的编号为(B)A.99B.98C.97D.5015.在一个图中,所有顶点的度数之和与图的边数的比是( C)A.1∶2B.1∶1C.2∶1D.4∶116.在一个具有n个顶点的无向图中,要连通全部顶点至少需要的边数为(A )A.n-1B.nC.n+1D.n/217.在一个具有n个顶点的无向图中,每个顶点度的最大值为( B )A.nB.n-1C.n+1D.2(n-1)18.若采用邻接表存储结构,则图的广度优先搜索类似于二叉树的(D)A.先序遍历B.中序遍历C.后序遍历D.层次遍历19.对线性表进行二分查找时,要求线性表必须( C)A.以顺序方式存储B.以链式方式存储C.以顺序方式存储,且结点按关键字有序排列D.以链接方式存储,且结点按关键字有序排列20.二分查找算法的时间复杂度是(D)A.O(n2)B.O(nlog2n)C.O(n)D.O(log2n)21.采用排序算法对n个元素进行排序,其排序趟数肯定为n-1趟的排序方法是(C)A.插入和快速B.冒泡和快速C.选择和插入D.选择和冒泡22. 闭散列表中由于散列到同一个地址而引起的“堆积”现象,是( B)A.由同义词之间发生冲突引起的B.由非同义词之间发生冲突引起的C.由同义词之间或非同义词之间发生冲突引起的D.由散列表“溢出”引起的23.在对查找表的查找过程中,若被查找的数据元素不存在,则把该数据元素插入到集合中。
综合题
1.设一组记录的关键字序列为(49,83,59,41,43,47),采用堆排序算法完成以下操作:(要求小根堆,并画出中间过程)
(1)以二叉树描述6个元素的初始堆
(2)以二叉树描述逐次取走堆顶元素后,经调整得到的5个元素、4
个元素的堆。
3.设有序表为(13,19,25,36,48,51,63,84,91,116,135, 200),元素的下标依次为1,2, (12)
(1)说出有哪几个元素需要经过4次元素间的比较才能成功查到
(2)画出对上述有序表进行折半查找所对应的判定树(树结点用下标表不)
(3)设查找元素5,需要进行多少次元素间的比较才能确定不能查到
2.设有一个不带头结点的单向链表,头指针为head,结点类型为
NODE,每个结点包含一个数据域data和一个指针域next:,该链表有两个结点,p指向第二个结点(尾结点),按以下要求写出相应语句(不要求完整程序,(1)、(2)、(3)、(4)是一个连续的过程)。
(1)新开辟一个结点,使指针s指向该结点,结点的数据成员data赋
值为1
(2)把该结点插入链表的尾部,释放指针s的指向
(3)删除链表的第一个结点
(4)已知pl指向另一个新结点,把它插入到p所指结点和尾结点之间
(1) s=(NODE*)malloc(sizeof(NODE));s->data=1;
(2) p->next=s;
s->next=NULL;free(s)
(3) head=head->next;
(4) p1->next=p->next;p->next=p1;
4. (1)设有序列{10,12,15,19,22,25,100,130,150,200}画出对上述序列进行折半查找的判定树(以序列中的元素作为树的结点)
(2)为了成功查找到100需要进行多少次元素间的比较?为了查找9,经过多少次元素间的比较可知道查找失败?
5. (1)对给定数列{7,16,4,8,20,9,6,18,5},依次取数列中的数据,构造一棵二叉排序树。
(2)对一个给定的查找值,简述针对二叉排序树进行查找的算法步骤,在上述二叉树中查找元素20共要进行多少次元素的比较?
(2)先将给定值与根结点比较,若相等则查找成功,否则若小于根结点则
在左子树中继续查找,大于根结点在右子树中查找,查找20共进行3次比较。
6. (1)设有查找表{5,14,2,6,18,7,4,16,3},依次取表中数据,构造一棵二叉排序树。
(2)说明如何由序列的二叉排序树得到相应序列的排序结果,对上述
二叉排序给出中序遍历的结果。
(2)中序遍历
中序2,3,4,5,6,7,14,16,18
19舒
1.(1)已知某二叉树的后序遍历序列是debca,中序遍历序列是
dbeac,试画出该二叉树
(2)若上述二叉树的各个结点的字符分别代表不同的整数(其中没
有相等的),并恰好使该树成为一棵二叉排序树,试给出a、b、c、d、e的大小关系
(3)给出该树的前序遍历序列
(1)
7,19,6},依次取序列中的
(2) 5,6,7,8,9,10,
17,18,19,21
5.(1)利用筛选过程把序列{42,82,67,102,16,32,57,52}建成
堆(小根堆),画出相应的完全二叉树(不要求中间过程)
(2)写出对上述堆对应的完全二叉树进行中序遍历得到的序列
(2) d<b<e<a<c
(3) abdec
2 .(1)已知某二叉树的先序遍历序列是aecdb,中序遍历序列是eadcb,试画出该二叉树
(2)给出上述二叉树的后序遍历序列
(3)若上述二叉树的各个结点的字符分别是1,2,3,4,5,并恰好
使该树成为一棵二叉排序树,试问a、氏c、d、e的值各为多少?
3 .(1)设有一个整数序列{40,28,6,72,100,3,54}依次取出序列中的数,构造一棵二叉排序树
(2)对上述二叉排序树,在等概率条件下,求成功查找的平均查找长
度
(2)ASL=(1x1+2x2+3x3+4)/7=18/7
看}柏构库
(2)102,52,42,82,16,67,32,57
6.(1)以给定权重值1,2,12,13,20,25为叶结点,建立一棵哈夫曼树
(2)若哈夫曼树有n个非叶子结点,则树中共有多少结点。
对给定的一组权重值建立的棵哈夫曼树是否一定唯一
(2)2n-1不一定唯
4.(1)给定数列{8,17,5,9,21,10,数构造一棵二
叉排序树
(2)对上述二叉树给出中序遍历得到的序列
1. (1)设head^DP1分别是不带头结点的单向链表A的头指针和尾指
针,head2和P2分别是不带头结点的单向链表B的头指针和尾指针,若
要把B链表接到A链表之后,得到一个以head i为头指针的单向循环
链表,写出其中两个关键的赋值语句(不用完整程序,结点的链域为next)。
(2)单向链表的链域为next,设指针p指向单向链表中的某个结点,指针s指向一个要插入链表的新结点,现要把s所指结点插入p所指结
点之后,某学生采用以下语句:
p->next=s;s->next=p->next;
这样做正确吗?若正确则回答正确,若不正确则说明应如何改写
(1) P i->next=head2;P2->next=head i;
(2) 不对,s->next=p->next;p->next=s;
2. (1)一组记录的关键字序列为{45,40,65,43,35,95}写出利用
快速排序的方法,以第一个记录为基准得到的一趟划分的结果(要求给
出一趟划分中每次扫描和交换的结果)
(2)同样对序列{45,40,65,43,35,95}利用直接插入排序,写
出逐次插入过程(从第一个元素一直到第六个元素)。
(1)45406543^5
354065433595
35.同43,95
3540百图5595
354043456595
(2)404565433?P?
4043456535配
35404345659:
3. (1)画出对长度为10的有序表进行折半查找的判定树(以序号1, 2,……10表示树结点)
(2)对上述序列进行折半查找,求等概率条件下,成功查找的平均查找长5. (1)利用筛选法,把序列{37,77,62,97,11,27,52,47}建成堆(小根堆),画出相应的完全二叉树
(2)写出对上述堆所对应的二叉树进行前序遍历得到的序
(2)11,37,47,97,77,27,62,52
6. (1)设有一个整数序列{50,38,16,82,110,13,64},依次取出序列中的数,构造一棵二叉排序树
(2)利用上述二叉排序树,为了查找110,经多少次元素间的比较
能成功查到,为了查找15,经多少次元素间的比较可知道查找失败
(2)三次;四次
(2)ASL=(1x1+2x2+3x4+4x3)/10=29/10。