深圳大学数据结构作业汇总

一⑴、判断题
1、线性表的特点是每个元素都有一个前驱和一个后继。

()
2、数据的物理结构是指数据在计算机内的实际存储形式。

()
3、数据的逻辑结构说明数据元素之间的次序关系,它依赖于计算机的存储结构()
一⑵、选择题
1、一个算法应该是()
A、问题求解步骤的描述
B、程序
C、要满足五个基本特性
D、A和B
2、以下数据结构中,()是非线性数据结构
A、树
B、字符串
C、队
D、栈
3、完成在双循环链表结点p之后插入s的操作是()
A、 p->next=s; s->prior=p; p->next->prior=s; s->next=p->next;
B、 p->next->prior=s; p->next=s; s->prior=p; s->next=p->next;
C、 s->prior=p; s->next=p->next; p->next=s; p->next->prior=s;
D、 s->prior=p; s->next=p->next; p->next->prior=s; p->next=s;
4、对于顺序存储的线性表,访问结点和增加、删除结点的时间复杂度为()。

A、O(n) O(n)
B、O(n) O(1)
C、O(1) O(n)
D、O(1) O(1)
5、设一个链表最常用的操作是在末尾插入结点和删除尾结点,则选用( )最节省时间。

A、单链表 B.单循环链表 C、带尾指针的单循环链表 D.带头结点的双向循环链表
一⑶、填空题
1、for (j=1; j<=n; j*=2); 的时间复杂度为。

2、在线性结构中,除第一个结点外,每个结点都有一个结点,除最后一个
结点外,每个结点都有一个结点。

3、数据逻辑结构包括集合和、、四种。

4、for (j=n; j>=1; j/=2); 的时间复杂度为。

5、在单链表指针为p的结点之后插入指针为s的结点,执行语句
和。

一⑷、画出下列二元组表示的数据结构对应的逻辑图形,并指出它属于何种逻辑结构。

1、A=(K,R),K={a, b, c, d, e, f, h},
R={<d, b>,<d, c>,<d, a>,<b,e>,<c, h>,<h, f>}
2、A=(K,R),K={a, b, c, d, e, f}
R={<a, b>,<b, c>,<c, d>,<d, e>,<e, f>}
二、现有模式abaababc,写出每个字母的next值(请写出求解过程)。

作业三
三⑴、一棵二叉树的先序、中序和后序序列分别如下,其中有一部分未显示出来。

试求出空格处的内容,并画出该二叉树(需要有步骤和说明)。

先序序列: _ B F I C E H G
中序序列:D K F I A E J C
后序序列: K F B H J G A
三⑵、给定一组数列(15,8,10,21,6,19,3)分别代表字符A,B,C,D,E,F,G出现的频度(权值),请画出Huffman树(要求树中左子树根结点的权值小于右子树根结点的权值),给出各字符的Huffman编码(左分支编码1,右分支编码0)。

作业四
四、请采用普里姆(Prim)算法(从顶点1开始)和克鲁斯卡尔(Kruskal)算法分别生成下
图的最小生成树(请画出每一步的过程)。

作业五
五.有向网N={V,E},V={0,1,2,3,4},E={<0,1,1>,<0,3,3>,<0,4,10>,<1,2,5>,<2,4,1>,<3,2,2>,<3,4,6>},E中每个元组的第三个元素表示权。

⑴、画出该网,并写出该网的邻接矩阵和邻接表表。

⑵、用Dijkstra算法求最短路径,写出顶点0到其它各顶点的最短路径长度、路径及产生过程。

⑶、求关键路径,写出计算过程。

作业六
六.⑴、有一个有序序列3,4,6,7,8,9,13,16,21,26,35,请画出查找关键字7的折半查找过程。

六.⑵、有一序列,30, 45, 50, 46, 55, 49, 40, 20, 10,
①、画出在初始为空的二叉排序树中依次插入以上序列时该二叉排序树的生长全过程;
②、画出在初始为空的AVL树中依次插入以上序列时该AVL树的生长全过程,并在有“旋转”时说出“旋转”的类型。

作业七
七、假设关键字输入顺序为5,55,67,21,44,12,3,53,23,已知散列函数为:H(Key)=Key%13,
(1) 用拉链法解决冲突,画出插入所有关键字后的链表结构(假设链表尾插入),并计算该
Hash表查找成功的平均查找长度;
(2) 用一次探测再散列开放定址法,画出插入所有关键字后的Hash表结构(指出发生碰撞
的次数),并计算该Hash表查找成功的平均查找长度。

作业八
八、分别用直接插入排序、希尔排序(gap=4,2,1)、起泡排序、快速排序方法,对整数序
列33, 17,12, 8, 70, 89, 75, 65, 77, 9 进行升序排序,写出每一趟(快速排序只需要写出第一趟的排序过程)的排序结果。

作业九
九、分别用简单选择排序、堆排序、归并排序、链式基数排序方法,对整数序列33, 17,12, 8,
70, 89, 75, 65, 77, 9 进行升序排序,写出每一趟的排序结果。

合集下载

深圳大学 数据结构 查找作业

深圳大学 数据结构 查找作业

第九章查找一、基本概念(共40分,每题4分)1、具有12个关键字的有序表,折半查找的平均查找长度________.A、3.1B、4C、2.5D、52、下面关于折半查找的叙述正确的是________A、表必须有序,表可以顺序方式存储,也可以链表方式存储B、表必须有序,而且只能从小到大排列C、表必须有序且表中数据必须是整型,实型或字符型D、表必须有序,且表只能以顺序方式存储3、与其他查找方法相比,散列查找法的特点是_______。

A.通过关键字的比较进行查找B.通过关键字计算元素的存储地址进行查找C.通过关键字计算元素的存储地址并进行一定的比较进行查找D.以上都不是4、适用于折半查找的表的存储方式及元素排列要求为______________。

A.链式方式存储,元素无序B.链式方式存储,元素有序C.顺序方式存储,元素无序D.顺序方式存储,元素有序5、已知一个有序表为{11,22,33,44,55,66,77,88,99},则折半查找元素55需要比较______次。

A.1 B.2 C.3 D.46、已知一个有序表为{11,22,33,44,55,66,77,88,99},则顺序查找元素55需要比较______次。

A.3 B.4 C.5 7、 D.67、若对数据集{23,44,48,36,52,73,64,58}建立散列表,采用H(k)=k MOD 13计算散列地址,并采用链地址法处理冲突,则元素64的散列地址为。

8、在对查找表的查找过程中,若被查找的数据元素不存在,则把该数据元素插到集合中。

这种方式主要适合于_______。

A.静态查找表B.动态查找表C.静态查找表与动态查找表D.两种表都不适合9、在线性表的哈希存储中,处理冲突有________________和________________两种;装填因子的值越大,存取元素时发生冲突的可能性就________________,装填因子的值越小,存取元素时发生冲突的可能性就________________。

深圳大学计算机与软件学院数据结构专业硕士历年考研真题汇编

深圳大学计算机与软件学院数据结构专业硕士历年考研真题汇编

2013年深圳大学计算机与软件学院801数据结构[专业硕士]考研真题 (2)2012年深圳大学计算机与软件学院801数据结构[专业硕士]考研真题 (6)2011年深圳大学计算机与软件学院808数据结构(一)[专业硕士]考研真题 (9)2011年深圳大学计算机与软件学院810数据结构(二)[专业硕士]考研真题 (11)2008年深圳大学计算机与软件学院数据结构[专业硕士]考研真题 (14)2007年深圳大学计算机与软件学院数据结构[专业硕士]考研真题 (16)2006年深圳大学计算机与软件学院数据结构[专业硕士]考研真题 (19)2005年深圳大学计算机与软件学院数据结构[专业硕士]考研真题 (21)2003年深圳大学计算机与软件学院数据结构[专业硕士]考研真题 (23)2002年深圳大学计算机与软件学院数据结构[专业硕士]考研真题 (25)说明:深圳大学计算机与软件学院数据结构[专业硕士]”2016年的科目代码为936, 2015年和2014年的科目代码为934, 2013年和2012年的科目代码为801 , 2008〜2002年的科目代码不详。

深圳大学2013年硕士研究生入学考试初试试题(餐題必级写在答题城上*写衣本试證纸上无效)考试科目代码:卫ei_—考试科目名称;数摒结构 __________________ _ _专业:计算机技术软件工程r判断题(每小题2分.共20分,对的打d错的打X)h链式存傑方式只能用丁存鐵11:线件給构.丫、集合炬数抵的逻紺结构形式*人牠坠实现过艸和常数丼子和序所必口怖结购°K山它稱州辰的出叫做空用・云深废为h的:义懈申姑点总数冬旷-1・拆、祀Y衢二乂树中*任怠轴点左右千箱的简復并(馆对値)不册过I。

阮采川邻按AI7關的图的滋度优久遍加算法类也一义神的醫戻次遍扔好法”&拓扑扭序世捲A0E网小傅个结点泵f|的加甲发上时间对黠直进切矗序.9*索引顺庁龙的特点址块间可无伊.但块内定娶右7T.,0'圧山刀个融扯拥如的数期中,製迭出K个敲小的敢刘I抉边播库比采祠汕汕扛怡砒i 序及各H■口接弘库怯郴快。

数据结构习题(有答案)(精选文档)

数据结构习题(有答案)(精选文档)

数据结构习题(有答案) 第1章绪1。

1 有下列几种二元组表示的数据结构,试画出它们分别对应的图形表示,并指出它们分别属于何种结构。

(1) A= ( D,R ),其中,D = { a1,a2,a3,a4}, R={ }(2) B= ( D,R ),其中,D = { a,b,c,d,e}, R={ (a,b),(b,c),(c,d),(d,e)}(3) C= ( D,R),其中,D = { a,b,c,d,e,f,g}, R={(d,b),(d,g),(1)集合(2) 线性表a b c d e(3)树fgabcde(4)图1453621 / 48·····谢阅。

(b,a),(b,c),(g,e),(e,f)}(4) K= ( D,R ),其中,D= { 1,2,3,4,5,6}, R={〈1,2>,〈2,3>,〈2,4>,<3,4>,<3,5>,<3,6>,<4,5〉,〈4,6〉}1.2设n为正整数,求下列各程序段中的下划线语句的执行次数。

(1) i=1;k=0while(i 〈=n-1){k+=10*i ;i++;(2) for (int i=1;i<=n; i++)for (int j=1; j〈=n; j++){c[i][j]=0;解:(1) n-1(2) ∑∑∑====ninjnkn111312 / 48·····谢阅。

}ﻩ for(intk=1; k〈=n; k++)c[i][j]=c[i][j]+a[i][k]*b[k][j]}(3) x=0;y=0;for (int i=1; i<=n; i++)for (int j=1; j<=i; j++)for (intk=1; k〈=j; k ++)(3)62)1)(nn(n21)(216)12)(1(2121212)1(1112111111++=+•+++•=+=+==∑∑∑∑∑∑∑∑========nnnnniii ijnininiijjkniijni3 / 48·····谢阅。

数据结构作业及参考答案(最新版)

数据结构作业及参考答案(最新版)

数据结构一、选择题1.数据的存储结构是指( )。

A 存储在外存中的数据 B 数据所占的存储空间C 数据在计算机中的顺序存储方式D 数据的逻辑结构在计算机中的表示 2.下列关于栈的描述中错误的是( )。

A 栈是先进后出的线性表B 栈只能顺序存储C 栈具有记忆作用D 对栈的插入与删除操作中,不需要改变栈底指针 3.用链表表示线性表的优点是( )。

A 便于随机存取B 花费的存储空间较顺序存储少C 便于插入和删除操作D 数据元素的物理顺序与逻辑顺序相同 4.在下面关于线性表的叙述中,选出正确的一项( )。

A 线性表的每个元素都有一个直接前驱和直接后继;B 线性表中至少要有一个元素;C 线性表中的元素必须按递增或递减的顺序排列;D 除第一个元素和最后一个元素外,其余每个元素都有一个且仅有一个直接前驱和直接后继。

5.设在栈中,由顶向下已存放元素c b a ,在第4个元素d 入栈前,栈中元素可以出栈,试问d 入栈后,不可能的出栈序列是 ( )。

A d c b a B c b d aC c a d bD c d b a6.在下列关于二叉树的叙述中,选出正确的一项( )。

A 在二叉树中,任何一个结点的度都是2;B 二叉树的度为2;C 在二叉树中至少有一个结点的度是2D 一棵二叉树的度可以小于27.下面的二叉树中,( )不是完全二叉树。

8.有一棵非空的二叉树(第0层为根结点),其第i 层上至多有多少个结点 ( )。

A 2iB 2i-1C 2i+1D i9.线性表的逻辑顺序与存储顺序总是一致的,这种说法 ( )。

A 正确B 不正确10.深度为k 的二叉树,所含叶子的个数最多为 ( )。

A 2KB KC 2k-1D 2k-111.深度为5的二叉树至多有( )个结点。

A 16B 32C 31D 1012.在下面关于线性表的叙述中,选出错误的一项( )。

A 采用顺序存储的线性表,必须占用一片连续的存储单元B 采用顺序存储的线性表,便于进行插入和删除操作C 采用链接存储的线性表,不必占用一片连续的存储单元D 采用链接存储的线性表,便于进行插入和删除操作13.已知一棵二叉树的前序遍历结果为ABCDEF ,中序遍历结果为CBAEDF ,则后序遍历的结果为( )。

数据结构-所有章节测验-测验答案-慕课答案-UOOC优课-课后练习-深圳大学

数据结构-所有章节测验-测验答案-慕课答案-UOOC优课-课后练习-深圳大学

数据结构章节测验数据结构第一章测验一、单选题 (共100.00分)1.在数据结构概念中, 数据的基本单位是()A.数据段B.数据项C.数据表D.数据元素正确答案:D2.在数据结构概念中, 结构是描述()A.数据项的类型B.数据元素之间的关系C.数据成员的先后顺序D.数据对象的取值范围正确答案:B3.在算法设计中, 要求算法便于理解和修改是属于算法要求的()A.正确性B.可读性C.健壮性D.效率高正确答案:B4.抽象数据类型ADT通过三方面描述, 包括数据对象、数据操作和()A.数据范围B.数据判断C.数据关系D.数据来源正确答案:C5.以下关于算法的描述, 哪个是正确的()A.算法可以没有输入B.算法可以包含无限个执行步骤C.算法可以没有输出D.算法的每个步骤允许带有歧义的正确答案:A6.在算法设计中, 要求算法满足具体问题的需求是属于算法要求的()A.正确性B.可读性C.健壮性D.效率高正确答案:A7.抽象数据类型ADT通过三方面描述, 包括数据关系、数据操作和()A.数据对象B.数据来源C.数据范围D.数据判断正确答案:A8.以下关于数据结构的描述, 哪一个是正确的()A.数据原子是数据的最小独立单位B.数据元素是数据的最小独立单位C.一个数据项可以包含若干个数据元素D.不能被计算机程序识别和处理的信息集合,不能称为数据正确答案:D9.设n为问题规模, 以下程序的时间复杂度为(...fo. (i=1.i<=10000.i++...fo.(j=1.j<=n.j++.........1;A.O(1)B.O(n)C.O(10000n)D.O(n2)正确答案:B10.设n为问题规模, 以下程序的时间复杂度为(.. fo.(i=1.i.POW(2.n).i++.//POW(x.y)函数表示x的y次...a+100;A.O(n)B.O(2n)C.O(n!)D.O(2n)正确答案:D数据结构第二章测验一、单选题 (共100.00分)1.以下结构中, 哪一个是属于逻辑结构()A.线性表B.顺序表C.单链表D.循环链表正确答案:A2.已知顺序表包含1000个数据, 现在第88号位置插入新的数据, 需要移动的数据个数为()A.88B.87C.912D.913正确答案:D3.若线性表最常用的操作是存取第i个元素及其后继的值,则最节省操作时间的存储结构是()A.单链表B.双链表C.单循环链表D.顺序表正确答案:D4.以下结构中, 哪一个是属于物理结构()A.线性表B. 栈C.单链表D.队列正确答案:C5.已知顺序表包含100个数据, 现在要删除第99号位置的数据, 需要移动的数据个数为()A.99B.100C. 1D. 2正确答案:C6.已知指针p指向单链表L的某个结点, 判断p指向的结点是尾结点的条件是()A.i.(p->next>p)B.i.(p->next==NULL)C.i.(p->nextD.i.(p->data==0)正确答案:B7.以下描述哪个是正确的()A.线性表的数据元素的存储位置一定是连续的B.顺序表的数据元素的存储位置一定是连续的C.链表的数据元素的存储位置一定不是连续的D.线性表的数据元素的存储位置一定不是连续的正确答案:B8.已知顺序表包含100个数据, 先在第15号位置插入1个新数据, 接着删除第3号位置的数据, 需要移动的数据总个数为()A.18B.84C.184D.188正确答案:C9.设某单链表包含10个结点, 已知指针p指向第3个结点, 指针q指向第4个结点, 删除第4个结点的语句为()A.p->nex..q->next.free(q);B.q->nex..p.free(p);C...q->next.free(p);D...p->next.free(q);正确答案:A10.设某单链表包含10个结点, 已知指针s指向一个新结点, 指针p指向第4个结点, 现在第4个结点之后插入这个新结点的两个语句为()A.p->nex..s.s->nex..p->next;B.s->nex..p->next.p->nex..s;C.p->nex..s->next.s->nex..p;D.s->nex..p.p->nex..s->next;正确答案:B数据结构第三章测验一、单选题 (共100.00分)1.以下结构中, 哪一个是属于逻辑结构()A.顺序栈B.链栈C.队列D.循环队列正确答案:C2.已知栈S为空, 数据1.2.3.4依次逐个进入栈S, 则栈顶数据为()A. 1B. 2C. 3D. 4正确答案:D3.已知队列为空, 数据1.2.3.4依次逐个进入队列, 则出队的数据顺序为()A.1234B.4321C.1324D.2413正确答案:A4.栈的最大特点是()A.先进先出B.后进先出C.无限递归D.有限递归正确答案:B5.队列的最大特点是()A.先进先出B.后进先出C.无限递归D.有限递归正确答案:A6.已知栈包含10元素, 其中存放在栈底是第1号元素, 则第10号元素可以通过()进行访问A.栈底B.栈中C.栈尾D.栈顶正确答案:D7.以下描述正确的是()A.顺序栈可以直接访问栈内任意位置的元素, 而链栈不可以B.链栈可以直接访问栈内任意位置的元素, 而顺序栈不可以C.通过栈可以实现程序的递归算法D.通过队列可以实现程序的递归算法正确答案:C8.以下结构中, 哪一个是属于物理结构()A. 栈B.队列C.链队列D.线性表正确答案:C9.使用长度为10的数组实现循环队列, 则该队列最多存储数据个数为()A. 1B. 9C.11.D.5正确答案:B10.在队列中, 允许插入的一端称为()A.队头B.队中C.队指针D.队尾正确答案:D数据结构第四章测验一、单选题 (共100.00分)1.以下结构中, 哪一个是属于逻辑结构()A.顺序表B.链栈C.循环队列D. 串正确答案:D2.以下哪一种是串在计算机中的常见表示方式()A.定长顺序B.堆分配C.块链D.前三种都是正确答案:D3.在数据结构中, 串可以等同于()的处理A.整数串B.浮点数串C.字符串D.多种类型的数组正确答案:C4.以下哪一种是串匹配的常用算法()A.普里姆算法B.克鲁斯卡尔算法C.KMP算法D.关键路径算法正确答案:C5.已知主串为abcbcaddabc, 模式串为cad, 假设串位置从1开始, 则串匹配位置是()A. 3B. 5C. 7D.不存在正确答案:B6.已知模式串为abaab, 则next数组为()A.1122B.22312C.1212D.1112正确答案:A7.已知串S的内容为1+2+3, 以下描述哪一个是正确的()A.串S的长度是6B.串S的运算结果是6C.整数1是串S的子串D.符号+是串S的子串正确答案:D8.以下描述哪一个是正确的()A.串是字符有限序列B.串是整数、浮点数、字符等多种数据的有限序列C.只包含空格的串称为空串D.串只能使用顺序表存储正确答案:A9.串的长度是指()A.串中包含不同字母的个数B.串中所含字符的个数C.串中包含不同字符的个数D.串中包含非空格的字符的个数正确答案:B10.串函数Sub(S.x.y)表示在串S中, 从x位置开始, 取出y个字符, 串位置从1开始计算。

数据结构 第二次作业 测验答案 慕课答案 作业二 UOOC优课 课后练习 深圳大学

数据结构 第二次作业 测验答案 慕课答案 作业二 UOOC优课 课后练习 深圳大学

数据结构第二次作业一、单选题 (共100.00分)1. 数组的存储方式有以下两种()A. 顺序表和链表B. 堆栈和队列C. 行优先和列优先D. 对称矩阵和三角矩阵正确答案:C2. 广义表的表头是指()A. 表中第一个元素B. 表中最后一个元素C. 除表中第一个元素以外,其余元素组成的子表D. 除表中最后一个元素以外,其余元素组成的子表正确答案:A3. 广义表的表尾是指()A. 表中第一个元素B. 表中最后一个元素C. 除表中第一个元素以外,其余元素组成的子表D. 除表中最后一个元素以外,其余元素组成的子表正确答案:C4. 已知二维数组有4行5列,首元素的数组下标为a00,则数组最后一个元素的数组下标是()A. a44B. a55C. a45D. a34正确答案:D5. 已知对称矩阵有4行4列,必定与元素a23相等的元素是()A. a32B. a33C. a00D. a22正确答案:A6. 已知矩阵A有4行5列,矩阵首元素下标为[0,0],每个元素使用4个字节,现用一维数组B存储该矩阵,数组B的内存首址为10000,若采用行序为主,矩阵元素A[3, 2]在内存的地址是()A. 10052B. 10068C. 10005D. 10020正确答案:B7. 已知广义表L=((x,y,z),a,(u,t,w)),假设head表示取表头运算,tail表示取表尾运算,求head(tail(L))的结果是()A. uB. (x)C. aD. (u, t, w)正确答案:C8. 以下哪一种是串在计算机中的常见表示方式()A. 定长顺序B. 堆分配C. 块链D. 前三种都是正确答案:D9. 在数据结构中,串可以等同于()的处理A. 整数串B. 浮点数串C. 字符串D. 多种类型的数组正确答案:C10. 以下哪一种是串匹配的常用算法()A. 普里姆算法B. 克鲁斯卡尔算法C. KMP算法D. 关键路径算法正确答案:C已知主串为abcbcaddabc,模式串为cad,假设串位置从1开始,则串匹配位置是()A. 3B. 5C. 7D. 不存在正确答案:B12. 已知串S的内容为1+2+3,以下描述哪一个是正确的()A. 串S的长度是6B. 串S的运算结果是6C. 整数1是串S的子串D. 符号+是串S的子串正确答案:D以下描述哪一个是正确的()A. 串是字符有限序列B. 串是整数、浮点数、字符等多种数据的有限序列C. 只包含空格的串称为空串D. 串只能使用顺序表存储正确答案:A串函数Sub(S, x, y)表示在串S中,从x位置开始,取出y个字符,串位置从1开始计算。

数据结构期末综合练习

数据结构〔本〕期末综合练习综合练习一一、单项选择题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,要删除结点A . p->next=q->next ;B. p=q->next;C p->next=q;Dp->next=q;3.以下说法不正确的选项是A.线性表的链式存储结构不必占用连续的存储空间B .一种逻辑结构只能有唯一的存储结构C.一种逻辑结构可以有不同的存储结构D.线性表的顺序存储结构必须占用连续的存储空间4.在一个单向链表中,在p所指结点之后插入一个s所指的结点时,可执行〔A . p= s;Bp->next=s->next;C. p=s->next; Ds->next=p->next;5.把数据存储到计算机中,并具体表达〔〕称为物理结构.A.数据元素间的逻辑关系B.数据的处理方法C.数据的性质D .数据的运算6.设有一个长度为23的顺序表,要删除第8个元素需移动元素的个数为〔A . 16B . 14C . 15D . 137.链表所具备的特点之一是〔〕.A .可以随机访问任一结点B .需要占用连续的存储空间要删除头结点,并使其仍为单向循b,可执行〔〕);和p->next=s;C .插入元素的操作不需要移动元素D .删除元素的操作需要移动元素8.设一棵有8个叶结点的二叉树,度数为 1的结点有3个,那么该树共有〔〕个结点.A 20B. 18 C . 17 D . 169.图状结构中数据元素的位置之间存在〔〕的关系.A . 一对一B .多对多C . 一对多D .每一个元素都有一个直接前驱和一个直接后继10 . 一棵具有5层的完全二叉树,最后一层有4个结点,那么该树总共有〔〕个结点A . 14B . 15C . 19D . 1811 .元素15, 9, 11, 13按顺序依次进栈,那么该栈的不可能输出序列是〔〕〔进栈出栈可以交替进行〕.A .13,11,9,15B, 15, 9, 11 , 13C .13,11,15,9D, 9, 15 ,13,1112 .设主串为“ FABcCDABcdEFaB c ,以下模式串能与主串成功匹配的是〔〕A. EFaBcB. ABCdEC. DABCCD .FAbcC13 .设有一个14阶的对称矩阵 A 〔第一个元素为 a 1,1〕,采用压缩存储的方式,将其下三角局部以行序为主序存储到1开始〕,那么矩阵中元素a 4,3在一维数组B 中的下标是〔1116 .以下说法不正确的选项是〔17 .设「棵哈夫曼树共有14个非叶结点,那么该树总共有〔一维数组B 中〔数组下标从 10 14.元素 111 , 113, 115,117按顺序依次进栈,那么该栈的不可能输出序列是〔〕〔进栈出栈可以交替进行〕.A . 117, 115, 113, 111 111 113 115 117C . 113, 111, 117, 115 117 115 11111315.在一棵二叉树中,假设编号为 的结点存在右孩子,那么右孩子的顺序编号为〔161517A .栈和队列都是线性结构.栈的特点是后进先出 C.栈和队列的特点都是先进后出.队列的特点是先进先出〕个结点A . 29C. 30 D . 2818.设有一个15阶的对称矩阵A〔第一个元素为3,1〕,采用压缩存储的方式,将其下三角局部以行序为主序存储到一维数组B中〔数组下标从i开始〕,那么矩阵中元素a4,2在一维数组B中的下标是〔〕.A. 9 B . 8 C , 7 D . 1019.如图1所示的一个图,假设从顶点a出发,按深度优先搜索法进行遍历,那么可能得到的一种顶点序列为〔〕.A . abecdfB . acfebdC . aebcfdD . aedbfca20.如图2所示的一个图,假设从顶点aX^乂深度优先搜索法进行遍历,那么可能得到的一彳 A .acedbf二、填空题1.队列的特点之2.序列13,11,14,12,17,15, 采用冒泡排序算法,经\趟冒泡后,序列的结果是3.结构中,数据元〔二?」对多白4.对16个元素的序列用冒泡遍I片排序,通布血行趟冒泡.图25.对稀疏矩阵进行压缩存储,矩阵中每个非零元素对应的三元组包括该元素的三项信息是O6.对9个元素的一组记录〔58, 35, 93, 20, 12, 78, 56, 41, 79〕进行直接插入排序〔由小到大排序〕,当把第7个记录56插入有序表,为寻找插入位置需比较次.7.在对11个记录的序列〔12 , 35, 9, 7 ,2, 11 ,56,95 ,37,58 ,60〕进行直接插入排序时,当把第6个记录11插入到有序表时,为寻找插入位置,元素间需比较次.〔由小到大排列〕8.结构中的数据元素存在一对多的关系称为结构.9.哈希函数是记录关键字的值与该记录之间所构造的对应关系.10.设有一棵深度为5的完全二叉树,第5层上有3个结点,该树共有个结点.(根所在结点为第1层)11. 20个元素进行冒泡法排序,通常需要进行19趟冒泡,其中第10趟冒泡共需要进行==次元素间的比较.12. 一棵二叉树中每一个非叶结点的度数都为2,共有10个非叶结点,那么该树共有个结点.13.一棵有19个结点的二叉树,采用链式2构存储,该树结构中有个指针域为空.14. 序列3,1,7,18,6,9,13,12经一趟归并排序的结果为_ ―.15.中序遍历一棵树可得到一个有序序列.16. 一棵有16个叶结点的哈夫曼树,那么该树共有个非叶结点.17.二叉排序树插入操作中,新插入的结点总是以树的结点被插入的18. 遍历二叉排序树可得到一个有序序列.19.广义表的(a , (d,a ,b) , h , (e ,( (i ,j ) ,k )))深度是.20.广义表(f , h , (a ,b, d, c) , d , e ,( (i ,j ) ,k ))的长度是 .21.序列4,2,5,3,8,6,7, 9,采用归并排序算法(升序),经一趟归并后,序列的结果22.广义表的(h ,c , g, a , (a ,b) , d , e ,( (i ,j ) ,k ))深度是-23.字符串a1= '' teijing " , a2 =''tef " , a3='' teifang " , a4="tefi "最小的24.设有串p1 = " ABADF ,P2=" ABAFU , P3=" ABADFA P4=" ABAF , 四个串中最小的是 .三、综合题1 .设查找表为(1)画出对上述查找表进行折半查找所对应的判定树(树中结点用下标表示)(2)说明成功查找到元素86需要经过多少次比较?(3)求在等概率条件下,成功查找的平均比较次数?2. (1)设有数据集合{50, 39, 17, 83, 111, 14, 65, 13, 91, 102, 49},依次取集合中各数据构造一棵二叉排序树.(2)一组记录的关键字序列为(6, 9, 7, 4, 5 ,8),利用堆排序(堆顶元素是最小元素)的方法建立初始堆.(要求用完全二叉树表示 )3.(1) 一组记录的关键字序列为(26, 59, 36, 18, 20, 25),给出利用堆排序(堆顶元素是最小元素)的方法建立的初始堆(要求以完全二叉树描述).(2)对关键字序列(26,59,36,18,20,64)采用快速排序,给出以第一个关键字为分割 元素,经过一次划分后的结果.4. (1)如下表为一个长度为10的有序表,给出按折半查找对该表进行查找的判定树(2)按折半查找对该表进行查找,求在等概率情况下查找成功的平均比较次数. 为了成功查找72 ,给出元素的比较次数.四、程序填空题中,用折半查找算法查找关键字等于k 的记录,查找成功返回该记录的下标,失败时返回typedef struct { int key;}NODE;int Binary_Search(NODE a[ ], int n, int k) {int low, mid, high; low=0; high=n-1;1 .以下函数在a[0]到a[n-1] -1 ,完成程序中的空格5. (1)棵哈夫曼树(2)while((1))(mid=(__(2))if(a[mid].key==k)return __(3);else if (__(4))low=mid+1;else —⑸;}return -1}1.(1) low<=high(2)( low+high)/2(3)mid;(4)a[mid].key<k(5)high=mid-1;2.设线性表以不带头结点的单向链表存储,链表头指针为head,以下程序的功能是输出链表中各结点中的数据域data o完成程序中空格局部.#define NULL 0void main(){ NODE *head ,*p ;p=head; /*p 为工作指针*/do{printf("%dn〞,⑴);(2) :}while( (3) );)2.(1) p->data(2) p=p->next(3) p!=NULL3.以下程序是前序遍历二叉树的递归算法的程序,完成程序中空格局部〔树结构中左、右指针域分别为left和right ,数据域data为字符型,BT指向根结点〕.void Inorder (struct BTreeNode *BT){if(BT!=NULL){(1);(2)—;Inorder(BT-- >right);}利用上述程序对右图进行前序遍历,结果是_〔3〕3.(3) a b d f e c4.以下程序是后序遍历二叉树的递归算法的程序,完成程序中空格局部〔树结构中左、右指针域分别为left和right ,数据域data为字符型,BT指向根结点〕.完成程序中空格局部.void Inorder (struct BTreeNode *BT)if( BT!=NULL){Inorder(BT->left);—(1)—(2)}4.(1) Inorder(BT->right) (2) printf( "%d ,BT->data)5.顺序查找算法如下,完成程序中空格局部.int search (NODE a[ ] ,int n , int k)/* 在a[0],a[1]…a[n-1],中查找关键字等于k的记录,查找成功返回记录的下标,失败时返回-1*/{ int i=0;while( i< n && a[i].key ⑴)—⑵ .if (___(3))return i;else return -1;)5.(1)!=k(2) i++;(3) a[i].key= =k综合练习一答案一、单项选择题1. C 2 , A 3 . B4.D5 . A6 . C 7. C 8. B9 . B 10 . C 11 . C 12 . A 13 . A14. D 15 . D 16 .C 17 .A 18. B 19. D 20 . B二、填空题1.先出2 . 11,13,12,14,15,17 3.树型4 . 15 5 .行下标列下标数组元素6. 4次7.38.树形9,存储位置10 .18 11 . 1012. 2113.2014. 1 , 3, 7, 18, 6, 9, 12, 1315.二叉排序树16 . 1517.叶18. 中序20. 6,4, 3, 5 , 6, 8 , 7, 922. 324.P1三、综合题1.493. (1)18 , 20, 25, 59, 26, 36一、单项选择题1.设头指针为head的非空的单向循环链表,指针p指向尾结点,那么满足表达式〔〕为真.A . p->next = =NULLB . p= =NULLC . p->next= =headD . p= =head2.数据的存储结构包括数据元素的表示和〔A .数据处理的方法相关算法D. 数据元素的类型 D. 数据元素间的关系的表示3. 一种逻辑结构〔〕A ,可以有不同的存储结构,只能有唯一的存储结构C.是指某一种数据元素之间的存储关系 D .是指某一种数据元素的性质4.在一个头指针为head的单向链表中, p指向尾结点,要使该链表成为单向循环链表可执行〔A . p= head->next; head->next=p;C head->next=p->next; p->next=head;5.链表所具备的特点之一是A .可以随机访问任一结点,占用连续的存储空间C .插入删除元素的操作不需要移动元素结点D .可以通过下标对链表进行直接访问6.元素111, 113, 115, 117按顺序依次进栈,那么该栈的不可能输出序列是〔〕〔进栈出栈可以交替进行〕.A . 117, 115, 113, 111B 111, 113, 115, 117C . 117, 115, 111, 113D , 113, 111, 117, 1157.线性结构中数据元素的位置之间存在〔〕的关系.A. 一对一B. 一对多C .多对多D.每一个元素都有一个直接前驱和一个直接后继8.以下说法正确的选项是〔〕A .栈的特点是先进后出B.栈的特点是先进先出C .队列的特点是先进后出D.栈和队列的特点都是先进后出9.在一个单向链表中p所指结点之后插入一个s所指的结点时,可执行〔〕A . p->next= s; s->next= p->next B. p->next=s->next;C p=s->nextD.s->next=p->next; p->next=s;IO .设有一个20阶的对称矩阵A〔第一个元素为a1,1〕,采用压缩存储的方式,将其下三角局部以行序为主序存储到一维数组B中〔数组下标从1开始〕,那么矩阵中元素a6,2在一维数组B中的下标是〔A. 24 B . 17 C . 16 D . 2311.元素11, 13, 15, 17按顺序依次进栈,那么该栈的不可能输出序列是〔〕〔进栈出栈可以交替进行〕.A . 17,15,13, 11B,11,13,15, 17C . 17,15,11 , 13D,13,11,17, 1512.设一棵有2n+1个结点的二叉树,除叶结点外每个结点度数都为2,那么该树共有〔〕个叶结点.A. nB. n+1 C , n+2 D . n-113.设有一个20阶的对称矩阵A〔第一个元素为au〕,采用压缩存储的方式,将其下三角局部以行序为主序存储到一维数组B中〔数组下标从1开始〕,那么矩阵中元素A .11B. 12C.14.如图1所示的一个图,假设从顶点a出发,得到的一种顶点序列为〔〕.A . abecdfB. aecbdfC0-f图115.设一棵哈夫曼树共有11个非叶结点,那么该树有〔A . 22B. 10C. 116.线性表以〔〕方式存储,能进行折半查找.A .关键字有序的顺序B.顺序C17. 一棵具有38个结点的完全二叉树,最后-层有〔A . 7B. 5 C. 6a5,2在一维数组B中的下标是〔〕13D. 10按广度优先搜索法进行遍历,那么可能.aebcfd D. aedfcb〕个叶结点.1D, 12.链接D .二叉树〕个结点.D. 8二、填空题〔根所在结点为第 1层〕18 . 一棵具有38个结点的完全二叉树,最后一层有〔 〕个结点. 19 .如图2所示的一个图, 假设从顶点a 出发,按深度优先搜索法进行遍历,那么可能得到的一种顶点序列为A . abecdf.acfebd C .aebcfd D . aedfcb 20 .对一个栈顶指针为 top 的链栈进行出栈操作,用变量 e 保存栈顶元素的值,那么执行 A. e= top->next; top->data=e; C. e=top->data; top=top->next;1 .字符串 a1= BEIJING ' , a2 = '、BEF" , a3= '' BEFANG , a4= “BEI〞最小的 2 .数组a 经初始化char a[]= English " ; a[7]中存放的是 字符串的结束符3 .把数据存储到计算机中,并具体表达数据元素间的逻辑结构称为 物理结构〔存储结构〕.4 .设有串 p1=" ABADF ,P2=" ABAFD , P3=" ABADFA P4=" ABAF ,四个串中最大的是 5 .设有一个长度为 22的顺序表,要删除第 8个元素需移动元素的个数为6 .在一棵二叉树中,假设编号为i 的结点存在右孩子,那么右孩子的顺序编号为7 .在一棵二叉树中,假设编号为i 的结点存在左孩子,那么左孩子的顺序编号为 8.设有一个长度为 20的顺序表,要插入一个元素,并作为第 8个元素, 需移动元素的个数为9.设一棵有n 个叶结点的二叉树,除叶结点外每个结点度数都为 2,那么该树共有 个结点.10 .结构中的数据元素存在多对多的关系称为 结构11 .在对一组序列 (45,29,87,12,6,63,55,37,78) 进行直接插入排序时,当把第8个记录37插入到有序表时, 为寻找插入位置需比较 次.〔由小到大排序〕12 .设有一棵深度为4的完全二叉树,第四层上有 5个结点,该树共有个结点. aB. top=top->next;E=top->data;D. top=top->next; e=data;13.n个元素进行冒泡法排序,通常需要进行趟冒泡.14.一棵二叉树中有n个非叶结点,每一个非叶结点的度数都为2,那么该树共有个叶结点.15.一棵有21个结点的哈夫曼树,该树中有个叶结点.16.在对一组记录(55,39,97,22,16,73,65,47,88)进行直接插入排序时,当把第7个记录65插入到有序表时,为寻找插入位置需比较次.(由小到大排序17.遍历二叉排序树可得到一个有序序列.18.n 个元素进行冒泡法排序,第j趟冒泡要进行_次元素间的比较.19.广义表(a , (a ,b) , d , e ,( (i ,j ) ,k ))的长度是 .20.一棵有n个叶结点的哈夫曼树,那么该树共有个结点.21.广义表的(a , (a ,b) , d , e ,( (i ,j ) ,k ))深度是.22.中序遍历可得到一个有序序列.23. 序列14,12,15,13,18,16,采用冒泡排序算法(升序),经一趟冒泡后,序列的结果24.广义表((a ,b) , d , e ,( (i ,j ) ,k ))的长度是 .三、综合题1 .设查找表为(7,15,21,22,40,58,68,80,88,89,120),元素的下标依次为1,2,3, (11)(1)画出对上述查找表进行折半查找所对应的判定树(树中结点用下标表示)(2)说明成功查找到元素40需要经过多少次比较(3)求在等概率条件下,成功查找的平均比较次数2.(1)设有数据集合{40, 29 , 7, 73, 101, 4, 55, 2 , 81, 92, 39},依次取集合中各数据构造一棵二叉排序树.(2)一组记录的关键字序列为(5, 8, 6, 3, 4 ,7),利用堆排序(堆顶元素是最小元素)的方法建立初始堆.(要求用完全二叉树表示)3.(1)一组记录的关键字序列为(47, 80, 57, 39, 41, 46),给出利用堆排序(堆顶元素是最小元素)的方法建立的初始堆(要求以完全二叉树描述).(2)对关键字序列(47,80,57,39,41,85)采用快速排序,给出以第一个关键字为分割元素,经过一次划分后的结果.(3) 如图3所示的二叉树,给出其前序遍历序列四、程序填空题1.Inorder(BT->right)⑶ dbeafc2.设线性表为(6, 10, 16, 4),以下程序用说明结构变量的方法建立单向链表,并输出链表中各结点中的数据. #define NULL 0void main(){NODE a,b,c,d,*head,*p;=6;=10;=16; 4. (1) 以2, 3, 4, 7, 8, 9作为叶结点的权,构造个关键字为分割元素,给出经过一次划分后结四、程序填空题1 .以下程序是中序遍历二叉树的递归算法的程存, 数据域data 为字符型,BT 指向根结点). 完成程序中空格局部 (树结构中左、 右指针域分别为left 和right , void Inorder (struct BTreeNode *BT)if(BT!=NULL){ Inorder(BT->left);} (2)利用上述程序对右图进行中序遍历,结果是 (3)(1) printf( "%C ,BT->data)树 给出上述哈夫曼树叶结点的哈夫曼编福.一组记录的关键字序列为(,利用快速排序,以第47, 29, 31 排序) d e图4=4; /*d 是尾结点*/head= (1);=&b;=&c;=&d;⑵;/*以上结束建表过程*/p=head; /*p 为工作指针,准备输出链表*/do{printf("%dn〞 ,(3));(4);}while((5));}2 .(1)&a⑵ d->next=NULL(3)p->data(4)p=p->next(5)p!=NULL3.以下冒泡法程序对存放在a[1] , a[2],……,a[n]中的序列进行排序,完成程序中的空格局部,其中n是元素个数,要求按升序排列.void bsort (NODE a[ ], int n){ NODE temp;int i,j,flag;for(j=1; (1);j++);{flag=0;for(i=1;(2);i++) if(a[i].key>a[i+1].key){flag=1;temp=a[i];(3)(4))if(flag= =0)break;)程序中flag的功能是33.(1) j<=n-1⑵ i<=n-j(3)a[i]=a[i+1](4)a[i+1]=temp(5)当某趟冒泡中没有出现交换那么已排好序,结束循环4.以下程序是中序遍历二叉树的递归算法的程序,完成程序中空格局部(树结构中左、右指针域分别为left和right ,数据域data为字符型,BT指向根结点)void Inorder (struct BTreeNode *BT){if(BT!=NULL){(1);⑵:Inorder(BT->right);})利用上述程序对右图进行遍历,结果是(3)4.(1)Inorder(BT->left)(2)printf( "%d ,BT->data)(3)bedafc综合练习二答案一、单项选择题I. C 2 , D 3 . A 4 . D 5 . C 6 . C 7 . A 8. A 9 . D 10 . BII. C 12 . B 13 . B 14 . B 15. D 16. A 17. A 18. A二、填空题1. a22.字符串的结束符3.物理结构(存储结构)4. p25. 146. 2i+17. 2i8. 139. 2n-110.图状11. 512. 1213n-114n+1151116 317.中序18. n-j19. 522.二叉排序树23, 12,14,13,15,16,1824. 43(1) 39 , 41 , 46, 80, 47, 57综合练习三一、单项选择题1.数据的存储结构包括数据元素的表示和〔〕.A .数据处理的方法B.数据元素的类型C . 相关算法D.数据元素间的关系的表示2.设有头指针为head的不带头结点的非空的单向循环链表,指针p指向其尾结点,要删除第一个结点,那么可利用下述语句head=head->next;和〔〕.A . p =head;B . p=NULL;C . p->next =head;D . head=p;3.树状结构中数据元素的位置之间存在〔〕的关系.A .每一个元素都有一个直接前驱和一个直接后继B . 一对一C .多对多D. 一对多4.以下说法正确的选项是〔〕.A.线性表的链式存储结构必须占用连续的存储空间B.一种逻辑结构可以有不同的存储结构C . 一种逻辑结构只能有唯一的存储结构D .线性表的顺序存储结构不必占用连续的存储空间5.设有一个长度为26的顺序表,要插入一个元素,并使它成为新表的第6个元素,需移动元素的个数为〔〕.A . 21B . 22C . 20D . 196.把数据存储到计算机中,并具体表达〔〕称为物理结构.A .数据的处理方法B.数据的性质C .数据的运算D.数据元素间的逻辑关系7.头指针为head的带头结点的单向循环链表,p所指向尾结点,要使该链表成为不带头结点的单向循环链表,可执行head=head->nex;和〔〕.A . p= head->nextBhead->next=pC head->next=p->next D.p->next=head;8.顺序表所具备的特点之一是〔〕.A .可以随机访问任一结点,不需要占用连续的存储空间C .插入元素的操作不需要移动元素D .删除元素的操作不需要移动元素9.元素111, 113, 115, 117按顺序依次进栈,那么该栈的不可能输出序列是〔〕〔进栈出栈可以交替进行〕.A . 117, 115, 113, 111B, 111, 113, 115, 117C . 117, 115, 111, 113D, 113, 111, 117, 11510.图状结构中数据元素的位置之间存在〔〕的关系.A. 一对一B. 一对多C.多对多D.每一个元素都有一个直接前驱和一个直接后继11.以下说法正确的选项是〔〕.A .栈的特点是先进先出B .栈的特点是先进后出C .队列的特点是先进后出12.元素20, 14, 16, 18按顺序依次进栈,那么该栈的不可能输出序列是〔〕〔进栈出栈可以交替进行〕.A . 18, 16, 14, 20B . 20, 14, 16, 18C . 18, 16, 20, 14D . 14, 20, 18, 16D.栈和队列的特点都是后进后出13. 设有一个20阶的对称矩阵A〔第一个元素为a〞〕,采用压缩存储的方式,将其下三角局部以行序为主序存储到一维数组B中〔数组下标从1开始〕,那么矩阵元素a6,2在一维数组B中的下标是〔〕.A. 21 B . 17 C . 28 D . 2314.设有一个12阶的对称矩阵A〔左上角第一个元素为a1,1〕,采用压缩存储的方式,将其下三角局部以行序为主序存储到一维数组B中〔数组下标从1开始〕,那么矩阵中元素a5,4在一维数组B中的下标是〔〕.A . 14B . 12C . 13D . 1115.设有串p1=" ABADF ,P2=" ABAFD , P3=" ABADFA ,P4=" ABAF,以下四个串中最大的是〔〕.A . p3B . p2C . plD . p416.设有一个长度为22的顺序表,要删除第8个元素需移动元素的个数为〔〕A . 25B . 14C . 15D . 2317.数组a经初始化char a[ ]= a English 〞 ; a[7]中存放的是〔〕.A.字符串的结束符B.字符hC. 、'h"D.变量h18.在一棵二叉树中,假设编号为5的结点存在右孩子,那么右孩子的顺序编号为〔〕A . 12B .9C .11D . 1019.设主串为“ ABcCDABcdEFaBC,以下模式串能与主串成功匹配的是〔〕.A. BcdB. BCdC. ABCD. Abc20. 一棵具有5层的完全二叉树,最后一层有4个结点,那么该树总共有〔〕个结点A . 14B. 15 C . 19 D . 1821.在一棵二叉树中,假设编号为i的结点存在左孩子,那么左孩子的顺序编号为〔〕A . 2i+1B. 2i-1 C . 2i D . 2i+222.如图1所示,假设从顶点a出发,按图的广度优先搜索法进行遍历,那么可能得到的一种顶点序列为〔〕.A . abcdfgeB . abcedfgC . acbfedgD . abcfgde24.字符串'' abcd321ABCD"的子串是〔图2〕A. 21ABC'B. abcABCDC. abcDD.、321a"25.线性表以〔〕方式存储,能进行折半查找.A .链接B .顺序C .关键字有序的顺序D .二叉树26.数组a经初始化char a[ ]= a English 〞 ;a[1]中存放的是〔〕A.字符nB.字符EC. 、'n"D.、、E"27 . 一棵具有38个结点的完全二叉树,最后一层有〔〕个结点.A . 7B. 5 C . 6 D .8 28 .如图3所示,假设从顶点a出发,按图的深度优先搜索法进行遍历,那么可能得到的一种顶点序列为〔A . abecdf Bacfebd C aebcfd D . aedfcb29.以下图的拓扑序列是()A . 5 2 3 4 6BC . 5 6 2 3 4D. 230.以下图的拓扑序列是)A. 5 2 3 4 6C. 5 6 4 2 33. n个元素进行冒泡法排序,第j趟冒泡要进行次元素间的比较.4.对稀疏矩阵进行压缩存储,矩阵中每个非零元素对应的三元组包括该元素的三项信息O5.中序遍历树可得到一个有序序列9 .广义表((a ,b) , d , e ,( (i ,j ) ,k ))(a ,b) , d , e ,( (i ,j ) ,k ))组表共有8,3,4,1,2,5,9,采用直接选择排序算法,当进行了两趟选择后,结果序列为40的顺序表,要删除第 8个元素需移动元素的个数为23 .有以下程序段char *p=a; int n=0;''0 ' ){ n++; p++;} 结果中,n 的值是24 .顺序表,,6 , 5, 1, 2, 4, 3, 8, 7经过一趟〔1,1〕归并后的结果序列为三、综合题1 .有一个长度为11的有序表(1, 2, 11, 15, 24, 28, 30, 56, 69, 70, 80),元素的下标依次为 6.在对 10 个记录的序列(9, 35,19, 77 ,2, 10 ,53, 45,27,68) 进行直接插入排序时,当把第6个记录10插入到有序表时,为寻找插入位置,元素间需比较 次.〔按升序排序〕7.待排序的序列为8,3,4,1,2,5,9, 采用直接选择排序算法,当进行了两趟选择后,结果序列为〔8. 字符串 a1= '、beijing ,a2 = bef ,a3='' beifang ,a4="befi "最小的10 . 10个元素进行冒下&法排序,,其中第5趟冒泡共需要进行 次元素间的比较.11. 广义表的〔c , a , 12. 遍历一棵二叉排序树可得到一个有序序列O13. 对稀疏矩阵进彳f 压缩存储 ,可采用三元组表,一个有 10行10列的稀疏矩阵 A 共有95个零元素,其相应的三元 14. 广义表(c , (a ,b,c) , ( d , e ,f ) , ( (i ,j ) ,k ))的长度是15. 在对一组记录 (50, 49, 97, 22, 16, 73, 65, 47, 88) 进行直接插入排序时,当把第7个记录65插入到有序 表时,为寻找插入位置需比较 次.16. 广义表的(c , (b,a ,b) , f , e ,( (i ,j ) ,k ))深度是17. 一棵有5个叶结点的哈夫曼树,该树中总共有 个结点.18. 序列 4,2,5 , 3 ,8, 6, 采用冒泡排序算法〔升序〕,经一趟冒泡后,结果序列是19. 设有一棵深度为 4的完全二叉树,第四层上有 5个结点,该树共有 个结点.〔根所在结点为第 1层〕.22.线性表用 方式存储可以随机访问.char a[]= English ";的长度是深度是个元素.20.待排序的序列为 21 .设有一个长度为 while( *p!=1,2,3,……,11 ,按折半查找对该表进行查找.(1)画出对上述查找表进行折半查找所对应的判定树.(2)说出成功查找到元素56,,需要依次经过与哪些元素的比较(3)说出不成功查找元素72,需要进行元素比较的次数2.设查找表为(1)画出对上述查找表进行折半查找所对应的判定树.(2)说明成功查找到元素90需要经过多少次比较(3)说明不成功查找元素82,依次与哪些元素进行了比较,需要经过多少次比较3.(1) 一组记录的关键字序列为(57, 90, 67, 50, 51, 56),利用堆排序(堆顶元素是最小元素)的方法建立初始堆(要求以完全二叉树描述).(2)对关键字序列(56,51,71,54,46,106)利用快速排序,以第一个关键字为分割元素,给出经过一次划分后结果.(3)一组记录的关键字序列为(60,47 , 80, 57, 39, 41 , 46,30 ),利用归并排序的方法,分别给出(1,1)归并、(2,2)归并、(4,4)归并的结果序列.4.(1)一组记录的关键字序列为(36, 69, 46, 28, 30, 35),给出利用堆排序(堆顶元素是最小元素)的方法建立的初始堆(要求以完全二叉树描述).⑵对关键字序列(36,69,46,28,30,74)采用快速排序,给出以第一个关键字为分割元素,经过一次划分后的结果.(3)设有数据集合(30,73,101,4,8,9,2,81),依次取集合中各数据构造一棵二叉排序树.四、程序填空题1.设线性表为(16, 20, 26, 24),以不带头结点的单向链表存储,链表头指针为head,以下程序的功能是输出链表中各结点中的数据域data.Struct node{int data;struct node *next;);typedef struct node NODE;#define NULL 0void main(){ NODE *head ,*p ;p=head; /*p 为工作指针*/do{printf("%dn",—⑴);(2)___ :}while(0);)四、程序填空题1.(1)p->data(2)p=p->next(3)p!=NULL2.以下函数在a[0]到a[n-1]中,用折半查找算法查找关键字等于k的记录,查找成功返回该记录的下标,失败时返回-1 ,完成程序中的空格typedef struct{ int key;}NODE;int Binary_Search(NODE a[ ], int n, int k){int low, mid, high;low=0;high=n-1;while( __(1)){ mid=(low+high)/2;if(a[mid].key==k)return __(2);else if (__(3))low=mid+1;else (4);}return -1;}设数组元素:a[0]=2 ; a[1]=5 a[2]=3; a[3]=4; a[4]=9; a[5]=6; a[6]=1; a[ 7]=10;按上述程序查找元素5,能否成功查到,说明理由=(5)2.⑴ low<=high(2)mid;(3)a[mid].key<k(4)high=mid-1;(5)不能,由于不是有序序列,不能用折半查找3.以下函数为直接选择排序算法,对a[1],a[2],…a[n]中的记录进行直接选择排序,完成程序中的空格typedef struct{ int key;}NODE;void selsort(NODE a[],int n){int i,j,k;NODE temp;for( i=1; i<=(1); i++) (k=i;for( j=i+1;j<=⑵ ; j++) _ if(a[j].key<a[k].key) (3);if( i!=k)(temp=a[i];(4) ______(5)L}}}3.(1)n-1(2)n(3)k=j(4)a[i]=a[k](5)a[k]=temp4.以下程序是后序遍历二叉树的递归算法的程序,完成程序中空格局部(树结构中左、右指针域分别为left和right ,数据域data为字符型,BT指向根结点)void Inorder (struct BTreeNode *BT)(if(BT!=NULL){一⑴.Inorder(BT->right);__(2) ; }利用上述程序对右图进行遍历,结果是=(3) ;图44.(1)Inorder(BT->left)(2)printf("%3 ,BT->data)(3)f,d,e,b,c,a综合练习三答案一、单项选择题1.D2.C3.D4. B5. A6.D7.D8. A 9 . C 10. C 11 . B 12 . C 13 . B 14 . A 15 . B 16. B 17 . A 18 . C 19 . A 20. C 21 . C 22. B 23.B 24. A 25 .C 26. A 27 . A 28 .D 29 . C 30. B二、填空题1.图状2.后出 3 . n-j4.行下标行下标数组元素5.二叉排序树6. 47. 1, 2, 4, 8, 3, 5, 98. a29. 410. 511.312.中序13. 514. 415. 316. 317.9三、综合题(30,39,41,46,47,57,60,80)4. (1) 28, 30, 35, 69, 36, 46⑵ 30 , 28, 36, 46, 69, 74,2,4,8,3,5,9 21 . 32 22.顺序 23. 7 24.(5, 6), 1,2), (3, 4) 8) 3. 281.11 69⑴ (2)28,69,30,563070(3)4 2.2456 80 ⑴ 5922 898 23 6981 1016 41 121 次⑵3 1189, 69,图5〔£〕。

数据结构深大经典题

7.3.习题自测第一章数据结构绪论1. 写出算法的特征2. 写出for (i=n; i>0; i/=2); 的时间复杂度第二章线性表1. 循环队列的队首和队尾下标分别为f, r, 最大长度为n, 写出判断队满和队空的条件2. 向量A中已有n个元素,写出删除其第i个位置元素的算法3. 在顺序表中插入和删除一个结点需平均移动多少个结点?具体的移动次数取决于哪两个因素?4. 设线性表的n个结点定义为(a0,a1,…,an-1),重写顺序表上实现的插入和删除算法:InsertList和DeleteList。

5. 设A和B是两个单链表,其表中元素递增有序。

试写一算法将A和B归并成一个按元素值递增有序的单链表C。

第三章栈和队列1. 设将整数1,2,3,4依次进栈,但只要出栈时栈非空,则可将出栈操作按任何次序夹入其中,请回答下述问题:⑴. 若入、出栈次序为Push(1),Pop(),Push(2),Push(3),Pop(),Pop(),Push(4),Pop(),则出栈的数字序列为何(这里Push(i)表示进栈,Pop()表示出栈)?⑵. 能否得到出栈序列1423和1432?并说明为什么不能得到或者如何得到。

⑶. 请分析1,2,3,4的24种排列中,哪些序列是可以通过相应的入出栈操作得到的。

第四章串1. 现有模式abaabc,写出每个字母的next值。

2. 假设主串abcabadabaabc,模式串如上,说明kmp算法的匹配过程。

3. 回文是指正读和反读均相同的字符序列,如"abba"和"abdba"均是回文,但"good"不是回文。

试写一个算法判定给定的字符向量是否为回文。

(提示:将一半字符入栈)。

第六章树与二叉树1. 若二叉树的先序和中序遍历结果分别是a, b, d, e, c, f, g, h和d, e, b, a, f, c,h, g, 求其后序遍历的结果2. 二叉树的中序和后序遍历结果分别为4, 5, 2, 1, 6, 3, 8, 7和5, 4, 2, 6, 8, 7, 3,1, 求其先序遍历的结果3. 树用孩子兄弟链接法存储,结点结构为:struct Node {char data, struct Node *child, *brother;}写C函数void PreOrder(struct Node *root), 先根遍历树。

深圳大学数据结构作业汇总

深圳⼤学数据结构作业汇总⼀⑴、判断题1、线性表的特点是每个元素都有⼀个前驱和⼀个后继。

()2、数据的物理结构是指数据在计算机内的实际存储形式。

()3、数据的逻辑结构说明数据元素之间的次序关系,它依赖于计算机的存储结构()⼀⑵、选择题1、⼀个算法应该是()A、问题求解步骤的描述B、程序C、要满⾜五个基本特性D、A和B2、以下数据结构中,()是⾮线性数据结构A、树B、字符串C、队D、栈3、完成在双循环链表结点p之后插⼊s的操作是()A、 p->next=s; s->prior=p; p->next->prior=s; s->next=p->next;B、 p->next->prior=s; p->next=s; s->prior=p; s->next=p->next;C、 s->prior=p; s->next=p->next; p->next=s; p->next->prior=s;D、 s->prior=p; s->next=p->next; p->next->prior=s; p->next=s;4、对于顺序存储的线性表,访问结点和增加、删除结点的时间复杂度为()。

A、O(n) O(n)B、O(n) O(1)C、O(1) O(n)D、O(1) O(1)5、设⼀个链表最常⽤的操作是在末尾插⼊结点和删除尾结点,则选⽤( )最节省时间。

A、单链表 B.单循环链表 C、带尾指针的单循环链表 D.带头结点的双向循环链表⼀⑶、填空题1、for (j=1; j<=n; j*=2); 的时间复杂度为。

2、在线性结构中,除第⼀个结点外,每个结点都有⼀个结点,除最后⼀个结点外,每个结点都有⼀个结点。

3、数据逻辑结构包括集合和、、四种。

4、for (j=n; j>=1; j/=2); 的时间复杂度为。

深圳大学数据结构树作业

深圳⼤学数据结构树作业数据结构作业⼆(第5-6章:树与⼆叉树,数组和⼴义表)要求:请在2017年11⽉9⽇机房交,迟交适当减分。

⼀、单选题:(每题2分,共12分)1、假设在⼀棵⼆叉树中,双分⽀结点数为15,单分⽀结点数为30个,则叶⼦结点数为______个。

A.15B.16C.17D.472、在⼀棵⼆叉树上第4层的结点数最多为______。

A.2B.4C.6D.83、任何⼀棵⼆叉树的叶⼦结点在先序中序和后序遍历序列中的相对次序___。

A.不发⽣改变B.发⽣改变C.不能确定D.以上都不对4、根据先序序列A B D C和中序序列DB A C确定对应的⼆叉树,该⼆叉树____。

A.是完全⼆叉树B.不是完全⼆叉树C.是满⼆叉树D.不是满⼆叉树5、设森林F中有三棵树,第⼀、第⼆和第三棵树的结点个数分别为N1、N2 和N3。

与森林F对应的⼆叉树根结点的右⼦树上的结点个数是_______。

A.N1B.N1+N2C.N2D. N2+N36.⼀个⼴义表的表头总是⼀个_______。

A.⼴义表B. 元素C. 空表D.元素或⼴义表⼀、简答题:(每空2分,共30分)1.对于⼀棵具有n个结点的树,该树中所有结点的度数之和为。

2.对于⼀棵⼆叉树,若⼀个结点的编号为i,若它的左孩⼦结点存在,右孩⼦结点存在,双亲结点存在,则编号分别为:。

3.设T是⼀棵⼆叉树,除叶⼦结点外,其它结点的度数皆为2,若T中有6个叶结点,则T树的最⼤深度和最⼩可能深度分别为。

4.设给定权值总数有n个,其哈夫曼树的结点总数为:。

5.若⼀棵完全⼆叉树具有35个结点,该树的深度为。

6.在⼀棵⼆叉树的⼆叉链表中,空指针域数是⾮空指针域数:。

7.由3个结点可以构造出种不同形态的⼆叉树,其中树⾼为3的⼆叉树有个。

8.线索⼆叉树中的线索指。

9.在哈夫曼编码中,若编码长度只允许⼩于或等于4,则除了已知两个字符编码为0和10外,还可以最多对个字符编码。

10.⼴义表A=((x,(a,B)),(x,(a,B),y)),则运算h e a d(h e a d(t a i l(A)))的结果为。

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