数据结构第四章测试(长春理工大学精品课)
数据结构测试(长春理工大学精品课)
第4章串
一、选择题
1.下面关于串的的叙述中,哪一个是不正确的?()查看答案
A.串是字符的有限序列B.空串是由空格构成的串
C.模式匹配是串的一种重要运算D.串既可以采用顺序存储,也可以采用链式存储
正确答案是B
解释:空串是什么字符都没的串,空格串是由空格组成的串。
收起
2 若串S1=‘ABCDEFG’, S2=‘9898’,S3=‘###’,S4=‘012345’,执行
concat(replace(S1,substr(S1,length(S2),length(S3)),S3),substr(S4,index(S2,‘8’),length(S2)))其结果为()查看答案
A.ABC###G0123 B.ABCD###2345 C.ABC###G2345 D.ABC###G1234
正确答案是D收起
3.已知串S=‘aaab’,其Next数组值为()。
查看答案
A.0123 B.1123 C.1231 D.1211
正确答案是A
解释:j=1时,next[j]取0收起
4.若串S=‘software’,其子串的数目是()。
查看答案
A.8 B.37 C.36 D.9
正确答案是B
解释:长度为1的子串有8个,长度为2的子串有7个......长度为8的子串有1个,还有一个空串,8+7+6+5+4+3+2+1+1=37个。
收起
5.串的长度是指()查看答案
A.串中所含不同字母的个数B.串中所含字符的个数
C.串中所含不同字符的个数D.串中所含非空格字符的个数
正确答案是B
解释:串的定义由字符组成的序列。
收起
二、填空题
1.组成串的数据元素只能是________。
查看答案
正确答案是字符收起
2.INDEX(‘DATASTRUCTURE’,‘STR’)=________。
查看答案
正确答案是5
解释:求子串的位置,匹配后子串第一个字符在主串中的位置。
收起
3.知U=‘xyxyxyxxyxy’;t=‘xxy’;
ASSIGN(S,U);
ASSIGN(V,SUBSTR(S,INDEX(s,t),LEN(t)+1));
ASSIGN(m,‘ww’)
REPLACE(S,V,m)= ________。
查看答案
正确答案是‘xyxyxywwy’
解释:s串中为‘xyxyxyxxyxy’v串中为‘xxyx’m串中为‘ww’,所以在s串中用m串替换v串,即为答案。
收起
4.模式串P=‘abaabcac’的next函数值序列为________。
查看答案
正确答案是01122312
解释:根据求next[j]的算法收起
5.一个字符串中________称为该串的子串。
查看答案
正确答案是任意个连续的字符组成的子序列
解释:子串必须是连续字符序列收起
6.空格串是指__(1)__,其长度等于___(2)__。
查看答案
正确答案是(1) 由空格字符(ASCII值32)所组成的字符串(2)空格的个数
收起
三、应用题
1.已知模式串t=‘abcaabbabcab’写出用KMP法求得的每个字符对应的next和nextval函数值。
查看答案解:
根据求next[j]的定义,可求解模式串t的next和nextval值如下:
收起
2.设字符串S=‘aabaabaabaac',P=‘aabaac'
(1)给出S和P的next值和nextval值;
(2)若S作主串,P作模式串,试给出利用BF算法和KMP算法的匹配过程。
查看答案
解:
(1)S的next与nextval值分别为012123456789和002002002009,p的next与nextval值分别为012123和002003。
(2)利用BF算法的匹配过程:利用KMP算法的匹配过程:
第一趟匹配:aabaabaabaac 第一趟匹配:aabaabaabaac
aabaac(i=6,j=6) aabaac(i=6,j=6)
第二趟匹配:aabaabaabaac 第二趟匹配:aabaabaabaac
aa(i=3,j=2) (aa)baac
第三趟匹配:aabaabaabaac 第三趟匹配:aabaabaabaac a(i=3,j=1) (成功) (aa)baac
第四趟匹配:aabaabaabaac
aabaac(i=9,j=6)
第五趟匹配:aabaabaabaac
aa(i=6,j=2)
第六趟匹配:aabaabaabaac
a(i=6,j=1)
第七趟匹配:aabaabaabaac
(成功) aabaac(i=13,j=7)
收起。
计算机专业数据结构第九章测试
数据结构测试(长春理工大学精品课)第9章排序一、选择题1.某内排序方法的稳定性是指( )。
查看答案A.该排序算法不允许有相同的关键字记录B.该排序算法允许有相同的关键字记录C.平均时间为0(n log n)的排序方法D.以上都不对正确答案是D解释:稳定的排序方法指的是若有相同关键字的记录,待排序时在前面的记录排序后仍然排在前面的排序方法。
收起2.下面给出的四种排序法中( )排序法是不稳定性排序法。
查看答案A. 插入B. 冒泡C. 二路归并D. 堆正确答案是D解释:堆排序是不稳定的,交换时有可能把后面的排在前面。
收起3.下面给出的四种排序方法中,排序过程中的比较次数与排序方法无关的是。
( )查看答案A.选择排序法 B. 插入排序法 C. 快速排序法 D. 堆排序法正确答案是A解释:简单选择排序是在待排记录中找到最小的和第一个相交换,再在除了第一个排完的以外找个最小的和第二个相交换,依此类推,n个记录的待排序列需要比较(n-1)+(n-2)+......+0=(n-1)*n/2收起4. 对序列{15,9,7,8,20,-1,4,} 用希尔排序方法排序,经一趟后序列变为{15,-l,4,8,20,9,7}则该次采用的增量是查看答案( )A. lB. 4C. 3D. 2正确答案是B 收起5.下列四个序列中,哪一个是堆()。
查看答案A. 75,65,30,15,25,45,20,10B. 75,65,45,10,30,25,20,15C. 75,45,65,30,15,25,20,10D. 75,45,65,10,25,30,20,15正确答案是C解释:这是一个大根堆,每个结点都比左右孩子小。
收起6.对一组数据(84,47,25,15,21)排序,数据的排列次序在排序的过程中的变化为(1)84 47 25 15 21 (2)15 47 25 84 21 (3)15 21 25 84 47(4)15 21 25 47 84则采用的排序是( )。
数据结构第二章测试(长春理工大学精品课)
数据结构测试(长春理工大学精品课)第2章线性表一、选择题1.下述( )是顺序存储结构的优点?查看答案A.存储密度大 B.插入运算方便C.删除运算方便 D.可方便地用于各种逻辑结构的存储表示正确答案为A解释:插入运算和删除运算对于顺序存储结构需要移动大量的数据元素,顺序存储结构对于非线性的逻辑结构表示比较复杂,顺序存储结构中只需要存储数据元素,不像链式结构除了存数据元素还要存储关系,因此顺序存储结构的存储密度比较大。
收起2.下面关于线性表的叙述中,错误的是哪一个?( )查看答案A.线性表采用顺序存储,必须占用一片连续的存储单元。
B.线性表采用顺序存储,便于进行插入和删除操作。
C.线性表采用链接存储,不必占用一片连续的存储单元。
D.线性表采用链接存储,便于插入和删除操作。
正确答案是B解释:顺序存储不利于插入删除,需要移动近一半的数据元素。
收起3.线性表是具有n个()的有限序列(n>0)。
查看答案A.表元素 B.字符C.数据元素 D.数据项解释:根据线性表的定义。
收起4.若某线性表最常用的操作是存取任一指定序号的元素和在最后进行插入和删除运算,则利用()存储方式最节省时间。
查看答案A.顺序表 B.双链表C.带头结点的双循环链表 D.单循环链表正确答案是A解释:顺序存储结构做相应的操作时间复杂度分别为O(1),O(1),O(1)因此是最节省时间的。
收起5.某线性表中最常用的操作是在最后一个元素之后插入一个元素和删除第一个元素,则采用()存储方式最节省运算时间。
查看答案A.单链表 B.仅有头指针的单循环链表C.双链表 D.仅有尾指针的单循环链表正确答案是D解释:在仅有尾指针的单循环链表做相应操作的时间复杂度为O(1),O(1)收起6. 若长度为n的线性表采用顺序存储结构,在其第i个位置插入一个新元素的算法的时间复杂度为()(1<=i<=n+1)。
查看答案A. O(0)B. O(1)C. O(n)D. O(n2)解释:在顺序表的第i个位置插入一个元素平均需移动的元素的个数是[n+(n-1)+......+0]/(n+1)=n/2,因此算法时间复杂度为O(n)。
数据结构(第二版)习题答案第4章
gets(s2.str);
s2.length=strlen(s2.str);
m=strcompare(s1,s2);
if(m==1) printf("s1>s2\n");
else if(m==-1) printf("s2>s1\n");
free(S);
free(T1);
free(T2);
}
【参考程序
2】:
#include<stdio.h>
#define MAXSIZE 100
typedef struct{
char str[MAXSIZE];
int length;
}seqstring;
for(k=0;k<t2.length;k++)
s->str[c+k]=t2.str[k];
else if(t1.length<t2.length)
{ for(m=s->length-1;m>i-1;m--)
s->str[t2.length-t1.length+m]=s->str[m]; //后移留空
while (i<t->length && j<p->length)
{
if(j==-1||t->str[i]==p->str[j])
{i++; j++;}
else j=next[j];
}
if (j==p->length) return (i-p->length);
数据结构第七章测试(长春理工大学精品课)
数据结构测试(长春理工大学精品课)第7章图一、选择题1.设无向图的顶点个数为n,则该图最多有()条边。
查看答案A.n-1 B.n(n-1)/2C.n(n+1)/2 D.n2正确答案是B解释: n个顶点相互都有关系,即边数最多。
边数=(n-1)+(n-2)+......+0=n(n-1)/2收起2.要连通具有n个顶点的有向图,至少需要()条边。
查看答案A.n-l B.nC.n+l D.2n正确答案是B解释:有向图要连通边数最少为n条,形成环。
收起3.一个有n个结点的图,最少有()个连通分量查看答案A.0 B.1C.n-1 D.N正确答案是B解释:图是连通图连通分量最少,即1个。
收起4.已知有向图G=(V,E),其中V={V1,V2,V3,V4,V5,V6,V7},E={<V1,V2>,<V1,V3>,<V1,V4>,<V2,V5>,<V3,V5>,<V3,V6>,<V4,V6>,<V5,V7>,<V6,V7>},G的拓扑序列是()。
查看答案A.V1,V3,V4,V6,V2,V5,V7 B.V1,V3,V2,V6,V4,V5,V7C.V1,V3,V4,V5,V2,V6,V7 D.V1,V2,V5,V3,V4,V6,V7正确答案是A收起5. 关键路径是事件结点网络中()。
查看答案A.从源点到汇点的最长路径 B.从源点到汇点的最短路径C.最长回路 D.最短回路正确答案是A解释:关键路径是由关键顶点和关键活动组成的。
收起6. 求解最短路径的Floyd算法的时间复杂度为( )。
查看答案A.O(n) B. O(n+c)C. O(n*n)D. O(n*n*n)正确答案是D收起7. 下列说法不正确的是()。
查看答案A.图的遍历是从给定的源点出发每一个顶点仅被访问一次C.图的深度遍历不适用于有向图B.遍历的基本算法有两种:深度遍历和广度遍历D.图的深度遍历是一个递归过程正确答案是B解释:图的深度遍历同样适用于有向图,算法中每个顶点均出发一次。
数据结构综合测试(一)(长春理工大学精品课)
数据结构综合测试(⼀)(长春理⼯⼤学精品课)数据结构测试(长春理⼯⼤学精品课)综合测试⼀⼀、选择1.数据结构中,与所使⽤的计算机⽆关的是数据的()结构。
查看答案A 顺序B 物理C 逻辑D 物理和存储正确答案为C解释:与计算机⽆关的结构是逻辑结构,是⽤户对数据的组织形式,存储时的物理结构才与计算机有关。
收起2.在长度为n的顺序表中插⼊⼀个元素时,等概率情况下的平均移动元素的次数是()查看答案A (n-1)/2B n/2C n*(n-1)/2D (n+1)/2正确答案为B解释:在往长度为n的线性表中插⼊元素时,位置可以是1,2,3.......n+1,因此移动元素个数为[n+(n-1)+......+0]/ (n+1)=n/2收起3.对于⼀个头指针为H的带头结点的单链表,判定该表为空表的条件是()。
查看答案A H==NULLB H!=NULLC H→next ==HD H→next==NULL解释:A答案是不带头结点的单链表H为空的判定条件B答案是不带头结点的单链表H不为空的判定条件C答案是带头结点的循环单链表H为空的判定条件收起4.在⼀个顺序表中,若表的第⼀个元素的存储地址是210,每⼀个元素的长度为3,则第5个元素的存储地址是()。
查看答案A 219B 222C 225D 228正确答案为B解释:第5个元素之前有4个元素,因此地址为210+(4*3)=222收起5.栈S最多能容纳4个元素,现有6个元素按a,b,c,d,e,f的顺序进栈,下⾯序列()是可能的出栈序列。
查看答案A edcbafB bcefadC cbedafD adfebc正确答案为C解释:堆栈的特点是后进先出,⽽且最多⼊栈4个元素收起6.循环队列⽤数组A[M]存放元素,已知其头尾指针分别为front和rear,则当前队列中的元素个数是()。
查看答案A rear-front+1B rear-front-1解释:若rear>=front 则元素个数为rear-front 若rear7.已知⼀棵⼆叉树的有35个叶⼦结点,则该⼆叉树⾄少有()个结点。
数据结构1-4章习题答案
第一章绪论一、选择题1.D2.C3.C4.B5.D6.C7.D8.C9.A 10.D11.D 12.B二、填空题1. 逻辑结构存储结构运算2. 集合结构线性结构树形结构图状结构3. 有穷性. 确定性. 可行性. 输入. 输出4. 顺序存储. 链式存储5. 数据元素6. 线性结构非线性结构三、简答题1. 尽管算法的含义与程序非常相似,但两者还是有区别的。
首先,一个程序不一定满有穷性,因为它不是一个算法。
其次,程序中的指令必须是计算机可以执行的,而算法中的指令却无此限制。
如果一个算法采用机器可执行的语言来书写,那么它就是一个程序。
2. 数据结构是指数据对象以及该数据对象集合中的数据元素之间的相互关系(数据元素的组织形式)。
例如:队列的逻辑结构是线性表(先进后出);队列在计算机中既可以采用顺序存储也可以采用链式存储;队列可进行删除数据元素. 插入数据元素. 判断是否为空队列,以及队列置空等操作。
3. 数据元素之间的逻辑关系,也称为数据的逻辑结构。
数据元素以及它们之间的相互关系在计算机存储器内的表示(又称映像)称为数据的存储结构,也称数据的物理结构。
4. 算法是对特定问题求解步骤的一种描述,它是指令的有限序列,其中每一条指令表示一个或者多个操作。
此外,一个算法还具有下列5个特性:(1)有穷性:一个算法必须在执行有穷步之后结束,即算法必须在有限时间内完成。
(2)确定性:算法中每一步必须有明确的含义,不会产生二义性。
并且,在任何条件下,算法只有唯一的一条执行路径,即对于相同的输入只能得出相同的输出。
(3)可行性:一个算法是能执行的,即算法中的每一步都可以通过已经实现的基本运算执行有限次得以实现。
(4)输入:一个算法有零个或者多个输入,它们是算法开始时对算法给出的初始量。
(5)输出:一个算法有一个或者多个输出,它们是与输入有特定关系的量5. 举例说明四种基本结构的区别:集合: 数据元素之间无任何关系,如集合A={x,5,t,&};线性结构: 数据元素之间存在一个对一个的关系,如线性表L=(2,3,4,5,7,10);树形结构: 数据元素之间存在一个对多个的关系,如文件系统目录管理;图状结构: 数据元素之间存在多个对多个的关系,如教学计划课程安排顺序图。
计算机专业数据结构综合测试2
数据结构测试(长春理工大学精品课)综合测试二一、选择1.链表不具有的特点是()查看答案A 可随机访问任一元素B 插入删除不需要移动元素C 不必事先估计存储空间D 所需空间与线性表的长度成正比正确答案为A解释:单链表不能随机访问某个元素,这种存储结构必须采用顺序访问的方式,根据头指针依此才能找到后继元素的地址,以便访问。
收起2.非空的循环单链表head的尾结点p满足()查看答案A p->next==NULLB p==NULLC p->next==headD p==head正确答案为C解释:循环链表的尾结点的后继应是头结点。
收起3.对稀疏矩阵进行压缩存储是为了()。
查看答案A 便于进行矩阵运算B 便于输入和输出C 节省存储空间D 降低运算的时间复杂度解释:矩阵采用压缩存储,相同的元素存一次,零元素不存,主要目的是为了节约内存空间,在很多时候为了找到相应元素,需要找到元素和存储位置的对应关系,反而增大了时间复杂度。
收起4.具有15个结点的二叉树的最小深度是()。
查看答案A 4B 5C 3D 6正确答案为A解释:n个结点的二叉树最小深度应是完全二叉树的深度logn+1,因此n=15时,最小深度是4。
收起5.在有n个叶子结点的哈夫曼树中,其结点总数为()查看答案A 不确定B 2nC 2n+1D 2n-1正确答案为D解释:赫夫曼树只有度为0和度为2的结点,叶子结点有n个,那么度为2的结点有n-1个,即总结点个数为2n-1个。
收起6.不带权的无向图的邻接矩阵()。
查看答案A 不一定是对称矩阵B 是对角线元素非零的对称矩阵C 是上三角矩阵D 是对角线元素为零的对称矩阵正确答案为D解释:无向图的邻接矩阵为对称矩阵,又因图中各顶点不包含到自身的关系,因此对角线上元素为0。
收起7.下列排序算法中,()算法可能会出现下面情况:初始数据有序,化费时间反而最多.查看答案A 堆排序B 冒泡排序C 快速排序D Shell排序正确答案为C解释:对于快速排序每次找到枢轴的位置基本将待排集合对分是最好的情况,如果待排集合基本有序,快速排序算法就退化了,时间复杂度可达到O(n*n)。
数据结构第四章的习题答案
数据结构第四章的习题答案数据结构第四章的习题答案在学习数据结构的过程中,习题是非常重要的一环。
通过解答习题,我们可以更好地理解和应用所学的知识。
在第四章中,我们学习了树和二叉树的相关概念和操作。
下面我将为大家提供一些第四章习题的答案,希望能帮助大家更好地掌握这一章节的内容。
1. 请给出树和二叉树的定义。
树是由n(n>=0)个结点构成的有限集合,其中有且仅有一个特定的结点称为根结点,其余的结点可以分为若干个互不相交的有限集合,每个集合本身又是一个树,称为根的子树。
二叉树是一种特殊的树结构,其中每个结点最多有两个子结点,分别称为左子结点和右子结点。
二叉树具有递归的定义,即每个结点的左子树和右子树都是二叉树。
2. 请给出树和二叉树的遍历方式。
树的遍历方式包括前序遍历、中序遍历和后序遍历。
前序遍历是先访问根结点,然后依次遍历左子树和右子树。
中序遍历是先遍历左子树,然后访问根结点,最后遍历右子树。
后序遍历是先遍历左子树和右子树,最后访问根结点。
二叉树的遍历方式包括前序遍历、中序遍历和后序遍历。
前序遍历是先访问根结点,然后依次遍历左子树和右子树。
中序遍历是先遍历左子树,然后访问根结点,最后遍历右子树。
后序遍历是先遍历左子树和右子树,最后访问根结点。
3. 给定一个二叉树的前序遍历序列和中序遍历序列,请构建该二叉树。
这个问题可以通过递归的方式解决。
首先,根据前序遍历序列的第一个结点确定根结点。
然后,在中序遍历序列中找到根结点的位置,该位置左边的结点为左子树的中序遍历序列,右边的结点为右子树的中序遍历序列。
接下来,分别对左子树和右子树进行递归构建。
4. 给定一个二叉树的中序遍历序列和后序遍历序列,请构建该二叉树。
和前面的问题类似,这个问题也可以通过递归的方式解决。
首先,根据后序遍历序列的最后一个结点确定根结点。
然后,在中序遍历序列中找到根结点的位置,该位置左边的结点为左子树的中序遍历序列,右边的结点为右子树的中序遍历序列。
数据结构第五章测试(长春理工大学精品课)
数据结构测试(长春理工大学精品课)第5 章数组和广义表一、选择题1.设有一个10阶的对称矩阵A,采用压缩存储方式,以行序为主存储,a11为第一元素,其存储地址为1,每个元素占一个地址空间,则a85的地址为()。
查看答案A. 13B. 33C. 18D. 40正确答案是B解释:[i,j]到k的对应关系是k=(i-1)*i/2+j (i>=j)或k=(j-1)*j/2+i (i<j),将i=8,j=5带入即得答案。
收起2. 假设以行序为主序存储二维数组A=array[1..100,1..100],设每个数据元素占2个存储单元,基地址为10,则LOC[5,5]=()。
查看答案A. 808B. 818C. 1010D. 1020正确答案是B解释:二维数组是m行n列,行下标和列下标都从1开始,loc[i,j]=首地址+((i-1)*n+(j-1))*每个数据元素的大小。
收起3. 数组A[0..4,-1..-3,5..7]中含有元素的个数()。
查看答案A. 55B. 45C. 36D. 16正确答案是B解释:第1维是5,第2维是3,第3维是3。
收起4. 已知广义表L=((x,y,z),a,(u,t,w)),从L表中取出原子项t的运算是()。
查看答案A. head(tail(tail(L)))B. tail(head(head(tail(L))))C. head(tail(head(tail(L))))D. head(tail(head(tail(tail(L)))))正确答案是D解释:表头是广义表中第一个元素,表尾是除了表头外剩下元素组成的表。
收起5. 广义表A=(a,b,(c,d),(e,(f,g))),则下面式子的值为()。
查看答案Head(Tail(Head(Tail(Tail(A)))))A. (g)B. (d)C. cD. d正确答案是D解释:tail(A)=(b,(c,d),(e,(f,g))),再取表尾=((c,d),(e,(f,g)))再取表头=(c,d),再取表尾=(d)再取表头=d。
智慧树知到《数据结构》章节测试答案
智慧树知到《数据结构》章节测试答案第1章单元测试1、算法的时间复杂度取决于___。
答案:A和B2、数据在计算机内存中的表示是指()答案:数据的存储结构3、算法指的是()答案:求解特定问题的指令有限序列4、在数据结构中,与所使用的计算机无关的数据结构是()答案:逻辑7、某线性表采用顺序存储结构,每个元素占4个存储单元,首地址为100,则第12个元素的存储地址为( )。
答案:1448、算法能正确地实现预定功能的特性称为算法的()。
答案:正确性第2章单元测试1、链表不具备的特点是()。
答案:可随机访问任意一个结点3、线性表的顺序存储表示优于链式存储表示。
答案:错4、顺序存储结构的缺点是不便于修改,插入和删除需要移动很多结点。
答案:对5、在设头、尾指针的单链表中,与长度n有关的操作是( )。
答案:删除最后一个结点6、设指针q指向单链表中结点A,指针p指向单链表中结点A的后继结点B,指针s指向被插入的结点X,则在结点A和结点B间插入结点X的操作序列为( )。
答案:q->next=s; s->next=p;7、对于只在表的首、尾两端进行插入操作的线性表,宜采用的存储结构为( )。
答案:用尾指针表示的循环单链表8、在一个单链表中,若p所指节点不是最后节点,在p之后插入s 所指节点,则执行( )。
答案:s->link=p->link;p->link=s;9、在双向链表存储结构中,删除p所指的结点时须修改指针____。
答案:p->next->prior=p->prior; p->prior->next=p->next;10、若事先不知道线性表的长度,则处理线性表时较好的存储结构是( )。
答案:单链表11、向一个有127个元素的顺序表中插入一个新元素并保存,原来顺序不变,平均要移动( )个元素。
答案:63.512、某线性表采用顺序存储结构,每个元素占4个存储单元,首地址为100,则第12个元素的存储地址为( )。
