数据结构第四教学单元测验练习题(答案) (自动保存的)
数据结构第4章习题.docx

第4章习题解答一、填空1.字符串是一种特殊的线性表,特殊在于它的数据元素只能是一字符,特殊在于串可以作为一个__________ 参与所需要的处理。
2.空格串是由___ 组成的串,空串是_________ 的串,因此空格串和空串不是一个概念。
3.字符串中任意多个_______ 字符所组成的子序列,被称作是这个串的“子串”,这个字符串木身则称为“主串”。
4.我们说两个字符串相等,在计算机内部实际上是通过对相应位置上字符__________ 码的比较而得到的结论。
5.设有串s=<t I am a teacher"。
该串的长度是_________ 。
6.设有三个串:sl=“Good", s2=9', s3=“bye!''。
则si、s2、s3连接后的结果串应该是7.所谓“数组”,是指〃(H>1)个具有」业L类型的数据的有序集合。
8.矩阵与通常所说的[维数组冇关。
9.所谓“特殊矩阵”,是指那些元素在矩阵小的分布具有一定规律性的矩阵;而矩阵小的零元素个数远远多于非零元素的个数,但非零元素的分布却没有规律,这样的矩阵被称为“稀疏矩阵”。
10.在一个阶方阵A中,若所有元素都有性质:= n),就称其为对称矩阵。
二、选择1 •设有两个串si和s20求s2在si中首次出现的位置的操作称为__________ oA.连接B.模式匹配C.求了串D.求串长2・有串:“①",那么它的长度是____ oA. 0B. 1C. 2D. 33.设有串sl=“ABCDEFG'和s2=“PQRSF'。
已知:算法con(x, y)返回串x和y的连接串;subs(s, i, j)返回串s的第i个字符开始往后j个字符组成的子串;len(s)返回串s的长度。
那么,con(subs(sl, 2, len(s2)), subs(sl, len(s2), 2))的操作结果是串__________ 。
数据结构 第四章测验 测验答案 慕课答案 UOOC优课 课后练习 深圳大学

数据结构第四章测验一、单选题 (共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开始计算。
已知串S内容为Shenzh en,则Sub(S, 2, 3)是()A. SheB. zhenC. ShenD. hen正确答案:D。
数据结构练习试卷4(题后含答案及解析)

数据结构练习试卷4(题后含答案及解析)题型有:1. 选择题选择题(每小题1分,共75分)下列各题A、B、C、D四个选项中,只有一个选项是正确的,请将此选项涂写在答题卡相应位置上,答在试卷上不得分。
1.在长度为64的有序线性表中进行顺序查找,最坏情况下需要比较的次数为______。
A.63B.64C.6D.7正确答案:B解析:在长度为64的有序线性表中,其中的64个数据元素是按照从大到小或从小到大的顺序排列有序的。
在这样的线性表中进行顺序查找,最坏的情况就是查找的数据元素不在线性表中或位于线性表的最后。
按照线性表的顺序查找算法,首先用被查找的数据和线性表的第一个数据元素进行比较,若相等,则查找成功,否则,继续进行比较,即和线性表的第二个数据元素进行比较。
同样,若相等,则查找成功,否则,继续进行比较。
依次类推,直到在线性表中查找到该数据或查找到线性表的最后一个元素,算法才结束。
因此,在长度为64的有序线性表中进行顺序查找,最坏的情况下需要比较64次。
因此,本题的正确答案为B。
知识模块:数据结构2.对长度为n的线性表进行顺序查找,在最坏情况下,所需要的比较次数为______。
A.1og2nB.n/2C.n2D.n+1正确答案:C解析:在长度为n的线性表中进行顺序查找,最坏情况下需要比较n次。
选项C正确。
知识模块:数据结构3.设有100个结点,用二分法查找时,最大比较次数是______。
A.25B.50C.10D.7解析:在最坏情况下,二分法查找的比较次数均为[1og2(n+1)L]。
n为100时,最大比较次数为7。
所以,本题应该选择D。
知识模块:数据结构4.如果要求一个线性表既能较快地查找,又能适应动态变化的要求,则可采用______的方法。
A.分块B.顺序C.二分法D.基于属性正确答案:A解析:二分法是快速查找方法,但要求线性表是有序的。
如果把线性表按趋势分块,也就是说,块之间有序,块内不一定有序。
数据结构与算法课程第4章的习题答案

case0: bonus=i*0.1;break;
case1: bonus=bonus1+(i-100000)*0.075;break;
case2:
case3:bonus=bonus2+(i-200000)*0.05;break;
case4:
case5:bonus=bonus4+(i-400000)*0.03;break;
第4章
4.1程序阅读题。以下程序运行结果是什么?
#includestdio.h
void main() {
int i1;
while (i15)
if (i3!2)continue;
else printf(d,i);
printf(\n);
}
结果为:2 5 8 11 14
4.2程序填空题。输出右边所示图案(共N行,N为奇数,此时N=7)。
}
注意:s、t不能定义为int,long型,因为这两种数据类型的范围都不超过21亿,无法容纳最后求的结果。
(6)求s=a+aa+aaa+…+aa...a的值,其中a是一个数字。例如2+22+222+2222+22222(此时共有5个数相加),几个数相加由键盘输入控制。
程序流程图:
程序代码:
#include<stdio.h>
bonus2=bonus1+100000*0.075;
bonus4=bonus2+200000*0.05;
bonus6=bonus4+200000*0.03;
bonus10=bonus6+400000*0.015;
(完整word版)数据结构(第4版)习题及实验参考答案数据结构复习资料完整版(c语言版)

数据结构基础及深入及考试复习资料习题及实验参考答案见附录结论1、数据的逻辑结构是指数据元素之间的逻辑关系.即从逻辑关系上描述数据,它与数据的存储无关,是独立于计算机的。
2、数据的物理结构亦称存储结构,是数据的逻辑结构在计算机存储器内的表示(或映像)。
它依赖于计算机。
存储结构可分为4大类:顺序、链式、索引、散列3、抽象数据类型:由用户定义,用以表示应用问题的数据模型。
它由基本的数据类型构成,并包括一组相关的服务(或称操作)。
它与数据类型实质上是一个概念,但其特征是使用与实现分离,实行封装和信息隐蔽(独立于计算机).4、算法:是对特定问题求解步骤的一种描述,它是指令的有限序列,是一系列输入转换为输出的计算步骤。
5、在数据结构中,从逻辑上可以把数据结构分成( C )A、动态结构和表态结构B、紧凑结构和非紧凑结构C、线性结构和非线性结构D、内部结构和外部结构6、算法的时间复杂度取决于( A )A、问题的规模B、待处理数据的初态C、问题的规模和待处理数据的初态线性表1、线性表的存储结构包括顺序存储结构和链式存储结构两种.2、表长为n的顺序存储的线性表,当在任何位置上插入或删除一个元素的概率相等时,插入一个元素所需移动元素的平均次数为( E ),删除一个元素需要移动的元素的个数为( A )。
A、(n—1)/2B、nC、n+1D、n-1E、n/2F、(n+1)/2G、(n-2)/23、“线性表的逻辑顺序与存储顺序总是一致的."这个结论是( B )A、正确的B、错误的C、不一定,与具体的结构有关4、线性表采用链式存储结构时,要求内存中可用存储单元的地址( D )A、必须是连续的B、部分地址必须是连续的C一定是不连续的D连续或不连续都可以5、带头结点的单链表为空的判定条件是( B )A、head==NULLB、head—>next==NULLC、head->next=headD、head!=NULL6、不带头结点的单链表head为空的判定条件是( A )A、head==NULLB、head-〉next==NULLC、head—>next=headD、head!=NULL7、非空的循环单链表head的尾结点P满足( C )A、p—>next==NULLB、p==NULLC、p->next==headD、p==head8、在一个具有n个结点的有序单链表中插入一个新结点并仍然有序的时间复杂度是( B )A、O(1)B、O(n)C、O(n2)D、O(nlog2n)9、在一个单链表中,若删除p所指结点的后继结点,则执行( A )A、p-〉next=p—〉next—>next;B、p=p—〉next;p-〉next=p—>next-〉next;C、p—〉next=p-〉next;D、p= p—>next->next;10、在一个单链表中,若在p所指结点之后插入s所指结点,则执行( B )A、s—>next=p;p-〉next=s;B、s—〉next=p—>next;p-〉next=s;C、s->next=p—〉next;p=s;D、p->next=s;s->next=p;11、在一个单链表中,已知q是p的前趋结点,若在q和p之间插入结点s,则执行( C )A、s—>next=p-〉next;p—>next=s;B、p->next=s—>next;s—〉next=p;C、q-〉next=s;s-〉next=p;D、p-〉next=s;s-〉next=q;12、在线性结构中,第一个结点没有前趋结点,其余每个结点有且只有 1 个前趋结点。
数据结构第4章作业参考答案

第4章(数组和广义表)作业参考答案一、单项选择题1.将一个A[1..100,1..100]的三对角矩阵,按行优先压缩存储到一维数组B[1‥298]中,A 中元素A[66][65]在B数组中的位置K为(C )。
A. 198B. 197C. 195D. 1962.广义表(a,(b,c),d,e)的表头为( A )。
A. aB. a,(b,c)C. (a,(b,c))D. (a)3.在三对角矩阵中,非零元素的行标i和列标j的关系是( A )。
A. |i-j|≤1B. i>jC. i==jD. i<j4.广义表L=(a,(b,c)),进行Tail(L)操作后的结果为( D )。
A. cB. b,cC.(b,c)D.((b,c))5.设二维数组A[1..m,1..n](即m行n列)按行存储在数组B[1..m*n]中,则二维数组元素A[i,j]在一维数组B中的下标为( D )。
A. j*m+i-1B. (i-1)*n+j-1C. i*(j-1)D. (i-1)*n+j6.广义表(( ),( ),( ))的深度为( C )。
A. 0B. 1C. 2D. 37.假设以行序为主序存储二维数组A[0..99,0..99],设每个数据元素占2个存储单元,基地址为10,则LOC(A[4][4])=( C )。
A. 1020B. 1010C. 818D. 8088.已知广义表A=((a,b),(c,d)),则head(A)等于( A )。
A. (a,b)B. ((a,b))C. a,bD. a9.已知一个稀疏矩阵的三元组表如下:(1,2,3),(1,6,1),(3,1,5),(3,2,-1),(4,5,4),(5,1,-3)则其转置矩阵的三元组表中第3个三元组为( C )。
A. (2,3,-1)B. (3,1,5)C. (2,1,3)D. (3,2,-1)10.广义表((b,c),d,e)的表尾为( C )。
数据结构模拟试题4参考答案.

数据结构模拟试题4参考答案一、选择题(20分)1-5 A C A B D6-10 B B C A D二、填空题(20分)1.n2.只由空格字符组成的字符串空格字符的个数3.5 34.k(k+1)/25.36.77.128.二叉树无左子树三、应用题(30分)1.参考答案如下:2.参考答案如下:1)2)9 4 3 8 10 7 6 56 8 94 5 103 76 4 3 8 5 79 103.参考答案如下:4.参考答案如下: 1)25.参考答案如下:1)哈希表a 及其生成过程如下:19:5 24:310:3,417:3,4,5,615:138:3,4,5,6,718:4,5,6,7,840:5,6,7,8,9ASL=(1+1+2+4+1+5+5+5)/8=24/8=30 1 2 3 4 52)哈希表b及其生成过程如下:19:524:310:3,417:3,4,215:138:3,4,2,718:4,5,3,840:5,6,4,9ASL=(1+1+2+3+1+4+4+4)/8=20/8=2.50 1 2 3 4 56.参考答案如下:四.算法设计题(30分)1.算法源代码如下:void delete(link h){link q, p;p=h->next;while(p!=NULL){ q=p;p=p->next;while(p->data==q->data){ q->next=p->next; free(p);p=q->next;}}}2.算法源代码如下:void huffmancode(htnode *ht, int m, char *hc[], int n){ int i,start,c,p;char cd[m]; cd[m-1]='\0';for(i=0;i<n;++i){ start=m-1; c=i; p=ht[i].parent;while(p!=-1){ if(ht[p].lchild==c) cd[--start]='0';else cd[--start]='1';c=p; p=ht[p].parent; }strcpy(hc[i],&cd[start]); }}3.算法源代码如下:int idk(algraph graph, int k){ arcptr p;int count=0, i;/*求邻接表中顶点k的入度*/for (i=1;i<=graph.vexnum;++i){ p=graph.vertices[i].firstarc;while(p!=NULL){ if(p->adjvex==k) count++;p=p->nextarc; }}}。
数据结构第四章的习题答案

数据结构第四章的习题答案数据结构第四章的习题答案在学习数据结构的过程中,习题是非常重要的一环。
通过解答习题,我们可以更好地理解和应用所学的知识。
在第四章中,我们学习了树和二叉树的相关概念和操作。
下面我将为大家提供一些第四章习题的答案,希望能帮助大家更好地掌握这一章节的内容。
1. 请给出树和二叉树的定义。
树是由n(n>=0)个结点构成的有限集合,其中有且仅有一个特定的结点称为根结点,其余的结点可以分为若干个互不相交的有限集合,每个集合本身又是一个树,称为根的子树。
二叉树是一种特殊的树结构,其中每个结点最多有两个子结点,分别称为左子结点和右子结点。
二叉树具有递归的定义,即每个结点的左子树和右子树都是二叉树。
2. 请给出树和二叉树的遍历方式。
树的遍历方式包括前序遍历、中序遍历和后序遍历。
前序遍历是先访问根结点,然后依次遍历左子树和右子树。
中序遍历是先遍历左子树,然后访问根结点,最后遍历右子树。
后序遍历是先遍历左子树和右子树,最后访问根结点。
二叉树的遍历方式包括前序遍历、中序遍历和后序遍历。
前序遍历是先访问根结点,然后依次遍历左子树和右子树。
中序遍历是先遍历左子树,然后访问根结点,最后遍历右子树。
后序遍历是先遍历左子树和右子树,最后访问根结点。
3. 给定一个二叉树的前序遍历序列和中序遍历序列,请构建该二叉树。
这个问题可以通过递归的方式解决。
首先,根据前序遍历序列的第一个结点确定根结点。
然后,在中序遍历序列中找到根结点的位置,该位置左边的结点为左子树的中序遍历序列,右边的结点为右子树的中序遍历序列。
接下来,分别对左子树和右子树进行递归构建。
4. 给定一个二叉树的中序遍历序列和后序遍历序列,请构建该二叉树。
和前面的问题类似,这个问题也可以通过递归的方式解决。
首先,根据后序遍历序列的最后一个结点确定根结点。
然后,在中序遍历序列中找到根结点的位置,该位置左边的结点为左子树的中序遍历序列,右边的结点为右子树的中序遍历序列。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《数据结构》第4教学单元测试练习
题
一、选择题
1. 对N个元素的表做顺序查找时,若查找每个元素的概率相同,则平均查找长度为( ) A.(N+1)/2 B. N/2 C. N D. [(1+N)*N ]/2 AB2.适用于折半查找的表的存储方式及元素排列要求为( )
A.链接方式存储,元素无序B.链接方式存储,元素有序
C.顺序方式存储,元素无序D.顺序方式存储,元素有序
3.当在一个有序的顺序存储表上查找一个数据时,即可用折半查找,也可用顺序查找,但前者比后者的查找速度( )
A.必定快 B.不一定 C. 在大部分情况下要快 D. 取决于表递增还是递减
4. 具有12个关键字的有序表,折半查找的平均查找长度()
A. 3.1
B. 4
C. 2.5
D. 5
5. 折半查找的时间复杂性为()
A. O(n2)
B. O(n)
C. O(nlog n)
D.O(logn)
6.对有18个元素的有序表作折半查找,则查找
A[3]的比较序列的下标为()A.1,2,3B.9,5,2,3 C.9,5,3 D.9,4,2,3
7.设有序表的关键字序列为{1,4,6,10,18,35,42,53,67,71,78,84,92,99},当用
二分查找法查找健值为84的结点时,经()
次比较后查找成功。
A.2 B. 3 C. 4
D.12
8、用n个键值构造一棵二叉排序树,最低高度
为()
A.n/2
B.、n
C.logn
D.logn+1
9.分别以下列序列构造二叉排序树,与用其它
三个序列所构造的结果不同的是( ) A.(100,80, 90, 60, 120,110,130)
B.(100,120,110,130,80, 60, 90)
C.(100,60, 80, 90, 120,110,130)
D.(100,80, 60, 90, 120,130,110)
10.设有一组记录的关键字为{19,14,23,1,68,20,84,27,55,11,10,79},用链地址法构造散列表,散列函数为H(key)=key% 13,散列地址为1的链中有()个记录。
A.1 B. 2 C. 3 D. 4
11.已知一采用开放地址法解决Hash表冲突,要从此Hash表中删除出一个记录,正确的做法是()A.将该元素所在的存储单元清空。
B.将该元素用一个特殊的元素代替
C.将与该元素有相同Hash地址的后继元素顺次前移一个位置。
D.用与该元素有相同Hash地址的最后插入表中的元素替代。
11. 假定有k个关键字互为同义词,若用线性探测法把这k个关键字存入散列表中,至少要进行
多少次探测?( )
A.k-1次 B. k次C. k+1次D. k(k+1)/2次
12. 散列表的地址区间为0-17,散列函数为H(K)=K mod 17。
采用线性探测法处理冲突,并将关键字序列26,25,72,38,8,18,59依次存储到散列表中。
(1)元素59存放在散列表中的地址是()。
A. 8 B. 9 C. 10 D. 11(2)存放元素59需要搜索的次数是()。
A. 2 B. 3 C. 4 D. 5
13. 将10个元素散列到100000个单元的哈希表
中,则()产生冲突。
A. 一定会
B. 一定不会
C. 仍可能会
二、判断题
1.查找相同结点的效率折半查找总比顺序查找高。
×
2.对无序表用二分法查找比顺序查找快。
×3.对大小均为n的有序表和无序表分别进行顺序查找,在等概率查找的情况下,对于查找成功,它们的平均查找长度是相同的,而对于查找失败,它们的平均查找长度是不同的。
√
4.在查找树(二叉树排序树)中插入一个新结点,总是插入到叶结点下面。
×
5.对一棵二叉排序树按前序方法遍历得出的结
点序列是从小到大的序列。
×
6.二叉树中除叶结点外, 任一结点X,其左子
树根结点的值小于该结点(X)的值;其右子树
根结点的值≥该结点(X)的值,则此二叉树一定
是二叉排序树。
×
7. 在任意一棵非空二叉排序树中,删除某结点
后又将其插入,则所得二排序叉树与原二排序叉
树相同。
×
8.采用线性探测法处理散列时的冲突,当从哈
希表删除一个记录时,不应将这个记录的所在位
置置空,因为这会影响以后的查找。
√
9.在散列检索中,“比较”操作一般也是不可避免√
10.散列函数越复杂越好,因为这样随机性好,冲突概率小. ×
11.Hash表的平均查找长度与处理冲突的方法
无关。
×
12.负载因子 (装填因子)是散列表的一个重要
参数,它反映散列表的装满程度。
√
13. 若散列表的负载因子α<1,则可避免碰撞的产生。
×
三、填空题
1.顺序查找n个元素的顺序表,若查找成功,则比较关键字的次数最多为__(1)n__次。
2.在有序表A[1..20]中,按二分查找方法进行查找,查找长度为5的元素个数是__ (2)5__。
3.在有序表A[1…20]中,按二分查找方法进行查找,查找长度为4的元素的下标从小到大依次是____(3)1,3,6,8,11,13,16,19__。
4.有序表(12,18,24,35,47,50,62,83,90,115,
134)使用二分法查找90时,需___(4)2_次查找成功,查100时,需___(5)4_次才能确定不成功。
5.在n个记录的有序顺序表中进行折半查找,最大
比较次数是___(6)log2n+1__。
(取下界)
6.平衡因子的定义是___(7)结点的左子树的高度减去结点的右子树的高度___
7.高度为8的平衡二叉树的结点数至少有___(8)54__个。
(参照教材P238:N0=0,N1=1,N2=2,公式N h=N h-1+N h-2+1)
8. 动态查找表和静态查找表的重要区别在于前者包含有___(9)插入_和__(10)_删除__运算,而后者不包含这两种运算。
四、应用题
1.假定对有序表:(3,4,5,7,24,30,42,54,63,72,87,95)进行折半查找,试回答下列问题:
(1).画出描述折半查找过程的判定树;
(2).若查找元素54,需依次与那些元素比较?
(3).若查找元素90,需依次与那些元素比较?
(4).假定每个元素的查找概率相等,求查找成功时的平均查找长度。
2.一棵二叉排序树结构如下,各结点的值从小到大依次为1-9,请标出各结点的值。
3.依次输入表
(30,15,28,20,24,10,12,68,35,50,46,5
5)中的元素,生成一棵二叉排序树【华中
理工大学 2000 五(10分)】
(1) 试画出生成之后的二叉排序树; (2) 对该二叉排序树作中序遍历,试写出遍历序列;
(3) 假定每个元素的查找概率相等,试计算
该二叉排序树的平均查找长
度。
4.设哈希函数H(k)=3 K mod 11,散列地址空间为0~10,对关键字序列(32,13,49,24,38,21,4,12)按下述两种解决冲突的方法构造哈希表(1)线性探测再散列(2)链地址法,并分别求出等概率下查找成功时的平均查找长度;。