数据结构复习模拟题5

合集下载

数据结构模拟题目

数据结构模拟题目

模拟题1一、填空题1.数据结构的基本单位是。

2.从存储结构上讲,线性表的表示可分为和链接两类。

3. 设顺序表长度为n,则删除第i(i = 1, 2, …, n)个元素需要移动个元素。

4. 后缀表达式20 10 5 * +49 7 / -的值为。

5. 一棵二叉树中,若叶结点的个数为2005,则度为2的结点个数为。

6.遍历一棵二叉搜索树,将得到一个以关键字值递增排列的有序序列。

7. 5阶B树的高度为2时,树中元素个数最少为。

8. 若有向图的拓扑排序不能输出所有的顶点,则该有向图存在。

二、单项选择题1. 若用单链表来表示队列,则选用最好。

()A. 只带尾指针的非循环链表B. 只带尾指针的循环链表C. 只带头指针的非循环链表D. 只带头指针的循环链表2. 设有一个二维数组A[m][n]按行优先顺序存储,假设A[0][0]的地址是644,A[2][2]的地址是676,每个元素占1个单元,则A[4][5]的地址是。

()A. 672B. 626C. 709D. 7243. 森林的后序遍历等价于其对应二叉树的遍历。

()A. 先序B. 中序C. 后序D. 按层4. 具有10个顶点的连通图的深度优先搜索生成树,其边的数目为。

()A. 9B. 10C. 11D. 85. 下列说法错误的是。

()A. 已知先序和中序遍历序列能唯一确定一棵二叉树B. 已知后序和中序遍历序列能唯一确定一棵二叉树C. 已知先序和后序遍历序列能唯一确定一棵二叉树D. 已知先序遍历序列能唯一确定一棵二叉搜索树6. 下列排序算法中,第一趟排序后能确定某个元素最终位置的算法是。

()A. 直接插入排序B. 快速排序C. 两路合并排序D. 以上均不对7. 散列表采用线性探查法解决冲突会出现现象。

()A. 二次聚集B. 探查失败C. 假溢出D. 线性聚集三、简答题1. 给定稀疏矩阵(如下图所示),请写出该矩阵执行快速转置时用到的num[]和k[]的值。

012940300008030020100240600180007⎡⎤⎢⎥⎢⎥⎢⎥-⎢⎥⎢⎥⎢⎥⎣⎦2. 表长为11的散列表采用双散列法解决冲突,散列函数 h 1(key)=key % 11,h 2(key)=key %3. 写出下图所有可能的拓扑序列。

数据结构复习题及答案5篇

数据结构复习题及答案5篇

数据结构复习题及答案5篇第一篇:数据结构复习题及答案、数据结构复习题及答案中南大学现代远程教育课程考试(专科)复习题及参考答案数据结构一、判断题:1.数组是一种复杂的数据结构,数组元素之间的关系既不是线性的也不是树形的。

()2.链式存储在插人和删除时需要保持物理存储空间的顺序分配,不需要保持数据元素之间的逻辑顺序。

()3.在只有度为0和度为k的结点的k叉树中,设度为0的结点有n0个,度为k的结点有nk个,则有n0=nk+1。

()4.折半搜索只适用于有序表,包括有序的顺序表和有序的链表。

()5.如果两个串含有相同的字符,则这两个串相等。

()6.数组可以看成线性结构的一种推广,因此可以对它进行插入、删除等运算。

()7.在用循环单链表表示的链式队列中,可以不设队头指针,仅在链尾设置队尾指针。

()8.通常递归的算法简单、易懂、容易编写,而且执行的效率也高。

()9.一个广义表的表尾总是一个广义表。

()10.当从一个小根堆(最小堆)中删除一个元素时,需要把堆尾元素填补到堆顶位置,然后再按条件把它逐层向下调整,直到调整到合适位置为止。

()11.对于一棵具有n个结点,其高度为h的二叉树,进行任一种次序遍历的时间复杂度为O(h)。

()12.存储图的邻接矩阵中,邻接矩阵的大小不但与图的顶点个数有关,而且与图的边数也有关。

()13.直接选择排序是一种稳定的排序方法。

()14.闭散列法通常比开散列法时间效率更高。

()15.有n个结点的不同的二叉树有n!棵。

()16.直接选择排序是一种不稳定的排序方法。

()17.在2048个互不相同的关键码中选择最小的5个关键码,用堆排序比用锦标赛排序更快。

()18.当3阶B_树中有255个关键码时,其最大高度(包括失败结点层)不超过8。

()19.一棵3阶B_树是平衡的3路搜索树,反之,一棵平衡的3路搜索树是3阶非B_树。

()20.在用散列表存储关键码集合时,可以用双散列法寻找下一个空桶。

数据结构复习五

数据结构复习五

1、以下关于广义表的叙述中,正确的是( A )。

A、广义表是0个或多个单元素或子表组成的有限序列B、广义表至少有一个元素是子表C、广义表不可以是自身的子表D、广义表不能为空表2、稀疏矩阵的特点是(C)A、矩阵元素都为非零元B、矩阵元素都不为非零元C、矩阵元素非零元个数远远小于零元素个数D、矩阵元素非零元个数远远大于零元素个数3、现将A的所有非0元素以行序为主序存放在首地址为1000的存储区域中,每个元素占有4个单元,则元素A[9][5]的首址为( D )A、1340B、1336C、1164D、11604、已知三维数组,它的维界分别为(4,9),(-1,5),(-9,-2),基地址为20,每个元素占3个字节,元素A[6][0][-5]的地址为(B)A、391B、392C、393D、3945、对广义表L=(x,((a,b)c,d))做运算head(head(tail(A)))后的结果为( C)A、xB、 (a,b)C、 aD、 c6、如果T2是由有序树T1转换而来的二叉树,那么T1中结点的先序就是T2中结点的( A )。

A、先序B、中序C、后序D、层次序7、如果T2是由有序树T1转换而来的二叉树,那么T1中结点的后序就是T2中结点的( B )。

A、先序B、中序 C 后序、 D、层次序8、深度为6的完全二叉树中( D )。

A、最少有31个结点,最多有64个结点B、最少有32个结点,最多有64个结点C、最少有31个结点,最多有63个结点D、最少有32个结点,最多有63个结点9、对一个满二叉树,m个树叶,n个结点,深度为h,则( D )A、 n=h+mB、 h+m=2nC、 m=h-1D、n=2h-110、在一棵完全二叉树中,若编号为i的结点存在右孩子,则右孩子结点的编号为( C )A、2iB、2i-1C、2i+1D、2i+211、任何一棵二叉树的叶子结点在先序、中序和后序遍历序列中的相对次序( A )A、不发生改变B、发生改变C、不能确定D、以上都不对12、设n、m为一棵二叉树上的两个结点,在中序遍历时,n在m前的条件是( C )A、n在m右方B、n是m祖先C、n在m左方D、n是m 子孙13、设高度为h的二叉树上只有度为0和度为2的结点,则此类二叉树中所包含的结点数至少为( B )A、2hB、2h-1C、2h+1D、h+114、某二叉树的先序遍历节点访问顺序是abdgcefh,中序遍历的节点访问顺序是dgbaechf,则其后序遍历的节点访问顺序是( D )A、bdgcefhaB、gdbecfhaC、bdgaechfD、gdbehfca15、如果T2是由有序树T转换而来的二叉树,那么T中节点的后序就是T2中节点的( B )A、先序B、中序C、后序D、层次序16、利用3,6,8,12,5,7,这六个值作为叶子节点的权,生成一棵赫夫曼树,该树的深度为v( B )A、3B、4C、5D、n是m 617、设森林F中有三棵树,第一,第二,第三棵树的结点个数分别为M1,M2和M3。

数据结构模拟试卷及参考答案

数据结构模拟试卷及参考答案

数据结构模拟试卷及参考答案一、简答题(共10题,每题10分,共计100分)1. 什么是数据结构?请简要解释。

数据结构是计算机中用于组织和存储数据的方式,它包含了一系列的数据元素,以及这些数据元素之间的关系和操作。

通过使用不同的数据结构,可以更高效地存储、查找和操作数据。

2. 请解释什么是栈,并给出一个栈的应用场景。

栈是一种具有特定操作限制的数据结构,它遵循"先进后出"(LIFO)的原则。

栈的应用场景包括函数调用、表达式求值、撤销操作以及浏览器中的历史记录。

3. 什么是队列?请给出一个队列的实际应用例子。

队列是一种具有特定操作限制的数据结构,它遵循"先进先出"(FIFO)的原则。

一个实际应用例子是操作系统的进程调度,进程按照到达时间加入队列,并按照一定规则出队执行。

4. 请解释什么是链表,并给出一个链表的优点和缺点。

链表是一种动态数据结构,它由一系列节点构成,每个节点包含数据和指向下一个节点的指针。

链表的优点是可以动态地分配内存空间,且插入和删除节点的时间复杂度为O(1)。

缺点是访问链表某个具体节点的时间复杂度为O(n),且需要额外的内存空间存储指针。

5. 请解释什么是树,并给出一个树的实际应用例子。

树是一种分层次的数据结构,它由一系列节点和节点之间的关系构成。

一个实际应用例子是文件系统的目录结构,文件和文件夹通过树的结构进行组织和存储。

6. 请解释什么是图,并给出一个图的实际应用例子。

图是一种由节点和节点之间的连接关系组成的数据结构。

一个实际应用例子是社交网络,人与人之间的关系可以用图来表示,每个人是一个节点,节点之间的连接表示关系。

7. 请解释什么是散列(哈希)表,以及它的优势和劣势。

散列表是一种根据关键字直接访问的数据结构,它通过将关键字映射到表中的位置来实现快速的查找操作。

散列表的优势是查找操作的平均时间复杂度为O(1)。

劣势是如果存在多个关键字映射到同一个位置,就会发生冲突,需要解决冲突问题。

数据结构模拟试题及答案

数据结构模拟试题及答案

数据结构模拟试题一一、判断题(每小题1 分,共15分)1.计算机程序处理的对象可分为数据和非数据两大类。

2.全体自然数按大小关系排成的序列是一个线性表。

3.在描述单向链表的结点类型时,必须首先描述数值字段,然后再描述指针字段。

4.顺序栈是一种规定了存储方法的栈。

5.树形结构中的每个结点都有一个前驱。

6.在任何一棵完全二叉树中,最多只有一个度为1的分支结点。

7.若某顶点是有向图的根,则该顶点的入度一定是零。

8.如果某图的邻接矩阵有全零的行,没有全零的列,则该图一定是有向图。

9.用一维数组表示矩阵可以节省存储空间。

10.广义表的长度与广义表中含有多少个原子元素有关。

11.分块查找的效率与线性表被分成多少块有关。

12.散列表的负载因子等于存入散列表中的结点个数。

13.在起泡排序过程中,某些元素可能会向相反的方向移动。

14.按某种逻辑关系组织起来的记录的集合称为逻辑记录。

15.索引非顺序文件的特点是索引表中的索引项不一定按关键字大小有序排列。

二、填空题(每空1分,共15分)1.顺序表是一种_____________线性表。

2.若用Q[1]~Q[m]作为非循环顺序队列的存储空间,则对该队列最多只能执行___次插入操作。

3.栈和队列的区别在于________的不同。

4.在高度为h(h≥0)的二叉树中至少有___个结点,至多有___个结点。

5.若用二叉链表来存储具有m个叶子,n个分支结点的树,则二叉链表中有___个左指针域为空的结点,有___个右指针域为空的结点。

6.n个顶点的有根有向图中至少有___条边,至多有___条边。

7.10行20列矩阵若用行优先顺序表来表示,则矩阵中第8行第7列元素是顺序表中第___个元素。

8.在各元素查找概率相等的情况下,用顺序查找方法从含有12个元素的有序表中查找一个元素,元素间的平均比较次数是_____。

9.在归并两个长度为m的有序表时,排序码的比较次数至少是___次,至多是___次。

数据结构模拟卷

数据结构模拟卷

一、判断题 (每题1分,共10分)1. 有回路的有向图不能完成拓扑排序。

( )2. 图的深度优先搜索是一种典型的回溯搜索的例子,可以通过递归算法求解。

( )3. 边数很多的稠密图,适宜用邻接矩阵表示。

()4. 在二叉排序树中插入新结点时,新结点总是作为叶子结点插入。

()5. 对一个有向图进行拓扑排序,一定可以将图的所有顶点按其关键字大小排列到一个拓扑有序的序列中。

( )6. 算法和程序原则上没有区别,在讨论数据结构时二者是通用的。

( )7. 进行折半查找的表必须是顺序存储的有序表。

( )8. 对平衡二叉树进行中根遍历,可得到结点的有序序列。

()9. 邻接矩阵适用于稠密图(边数接近于顶点数的平方),邻接表适用于稀疏图(边数远小于顶点数的平方)( )。

10. 对一个连通图进行一次深度优先搜索可以遍访图中的所有顶点。

( )二、单项选择题 (每题2分,共20分)1. 在一个具有n个结点的有序单链表中插入一个新结点并仍然有序的时间复杂度是()。

A.O(1)B.O(n)C.O(n2)D.O(nlog2n)2. 数组A[5][6]的每个元素占5个单元,将其按行优先次序存储在起始地址为1000的连续的内存单元中,则元素A[4][4]的地址为()。

A.1140B.1145C.1120D.11253. 在一个链队中,假设f和r分别为队首和队尾指针,则插入s所指结点的运算是()。

A.f->next=s;f=s;B.r->next=s;r=s;C.s->next=r;r=s;D.s->next=f;f=s;4. 在一个单链表中已知q所指的结点是p所指结点的前驱结点,若在q和p之间插入s结点,则执行()。

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;5. 对于如下图所示的带权有向图,从顶点1到顶点5的最短路径为()。

十套数据结构模拟题+答案

十套数据结构模拟题+答案

数据结构试卷(一)一、选择题(20分)1.组成数据的基本单位是()。

(A) 数据项(B) 数据类型(C) 数据元素(D) 数据变量2.设数据结构A=(D,R),其中D={1,2,3,4},R={r},r={<1,2>,<2,3>,<3,4>,<4,1>},则数据结构A是()。

(A) 线性结构(B) 树型结构(C) 图型结构(D) 集合3.数组的逻辑结构不同于下列()的逻辑结构。

(A) 线性表(B) 栈(C) 队列(D) 树4.二叉树中第i(i≥1)层上的结点数最多有()个。

(A) 2i (B) 2i(C) 2i-1(D) 2i-15.设指针变量p指向单链表结点A,则删除结点A的后继结点B需要的操作为()。

(A) p->next=p->next->next (B) p=p->next(C) p=p->next->next (D) p->next=p6.设栈S和队列Q的初始状态为空,元素E1、E2、E3、E4、E5和E6依次通过栈S,一个元素出栈后即进入队列Q,若6个元素出列的顺序为E2、E4、E3、E6、E5和E1,则栈S的容量至少应该是()。

(A) 6 (B) 4 (C) 3 (D) 27.将10阶对称矩阵压缩存储到一维数组A中,则数组A的长度最少为()。

(A) 100 (B) 40 (C) 55 (D) 808.设结点A有3个兄弟结点且结点B为结点A的双亲结点,则结点B的度数数为()。

(A) 3 (B) 4 (C) 5 (D) 19.根据二叉树的定义可知二叉树共有()种不同的形态。

(A) 4 (B) 5 (C) 6 (D) 710.设有以下四种排序方法,则()的空间复杂度最大。

(A) 冒泡排序(B) 快速排序(C) 堆排序(D) 希尔排序二、填空题(30分)1.设顺序循环队列Q[0:m-1]的队头指针和队尾指针分别为F和R,其中队头指针F指向当前队头元素的前一个位置,队尾指针R指向当前队尾元素所在的位置,则出队列的语句为F =____________;。

数据结构模拟试题5参考答案.

数据结构模拟试题5参考答案.

数据结构模拟试题5参考答案一、选择题(20分)1-5 C C D A A6-10 D B C B B二、填空题(20分)1.结点*p的左右链域为空2.深度优先3.N-14.A[N/2]5.sq.front=(sq.fron+1)%M (sq.rear+1)%M = = sq.front 6.4,9,14,17,207.0 入度减1 环三、应用题(30分)1.参考答案如下:1)二叉树2)对应的森林·2·数据结构上机实验与习题解析2.参考答案如下:3.参考答案如下:1)G1的邻接表和G1的逆邻接表2)G1的强连通分量第3部分模拟试题及参考答案·3·4.参考答案如下:2)所有字符的哈夫曼编码如下:A(7): 0011B(19): 011C(5): 0010D(16): 010E(42): 01F(11): 0005.参考答案如下:事件的发生时间活动的开始时间·4·数据结构上机实验与习题解析6.参考答案如下:1)该序列是一个小根堆四.算法设计题(30分)1.算法源代码如下:void fun(bitree T, char x, int m){ if(T){ m++;if(T->data==x) {printf("%d",m); return ;}fun (T->lchild,x,m);fun (T->rchild,x,m);}}main(){ bitree bt;int m=0;fun(bt,m);}2.算法源代码如下:#define maxsizetypedef struct{int elem[maxsize];第3部分模拟试题及参考答案·5·int top[2];}stack;stack s;1)入栈操作int push(int i,int x){ if(i<0||i>1) { printf("输入数据有误"); return 0;}if(s.top[1]-s.top[0]==1) {printf("栈满"); return 0;}switch(i){ case 0: s.elem[++s.top[0]]=x; break;case 1: s.elem[--s.top[1]]=x;}return 1;}2)出栈操作int pop(int i, int *x){ if(i<0||i>1) { printf("输入数据有误"); return 0;}switch(i){ case 0:if(s.top[0]==-1) {printf("栈空"); return -1;}else *x=s.elem[s.top[0]--];break;case 1:if(s.top[0]==maxsize) {printf("栈空"); return -1;}else *x=s.elem[s.top[1]++];}return 1;}3.算法源代码如下:void dijkshort(mgraph G,int v){int s[30]; int d[30]; int pre[30];int i,j,k,p,min;for(i=1;i<=G.vexnum;i++){ d[i]=G.arcs[v][i]; s[i]=0;if(d[i]<32767) pre[i]=v;else pre[i]=0;}s[v]=1;for(i=1;i<=G.vexnum;i++){ min=32767; k=0;·6·数据结构上机实验与习题解析for(j=1;j<=G.vexnum;j++)if(!s[j]&&d[j]<min) {min=d[j];k=j;}if(k==0) /*已没有顶点可往第一组加*/return;else{ s[k]=1; /*将找到的顶点加入到第一组中*/for(j=1;j<=G.vexnum;j++) /*修改第二组中顶点的距离值*/if(!s[j]&&d[j]>d[k]+G.arcs[k][j]) { d[j]=d[k]+G.arcs[k][j]; pre[j]=k;}}for(j=1;j<=G.vexnum;j++) /*输出结果*/if(pre[j]){ printf("\n%c",G.vexs[j]); p=pre[j];while(p){printf("<%c",G.vexs[p]);p=pre[p];}printf(": %d",d[j]); }elseif(j!=v) printf("\n%c<%c : no path",G.vexs[j],G.vexs[v]);}。

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

第六章树
1. 对于图6.29给出的树,指出树中的根结点、叶结点和分支结点。

并指出各个结点的度数和层数。

2. 对图6.29所示的树,采用先根次序、后根次序和中根次序遍历。

问得到怎样的结点序列?
3. 对图6.29所示的树,分别采用先根次序的父指针表示法、长子-兄弟表示法,试画出各种方法的图示。

4. 用三个结点A,B,C可以构成多少种不同的二叉树?请把它们画出来。

5. 将图
6.29所示的树转换成对应的二叉树是什么样子?请把它画出来。

6. 请按先根、后根和对称序遍历图6.30所示的二叉树,列出遍历所得的结点序列。

7 请将图6.30所示的二叉树转换成对应的树林,并按先根次序和后根次序遍历树林。

8. 对于给定的一组权值
w={1,4,9,16,25,36,49,64,81,100},
构造具有Huffman树。

并求出它的带权路径长度。

9 给出(a)所示树的双亲链表表示、孩子链表表示、双亲孩子链表表示及孩子兄弟链表表示等四种存储结构,并指出哪些存储结构易于求指定结点的祖先,哪些易于求指定结点的后代?
10.画出下图所示的各二叉树所对应的森林。

11.假设用于通信的电文由字符集{a,b,c,d,e,f,g,h}中的字母构成,这8个字母在电文中出现的概率分别为{0.07,0.19,0.02,0.06,0.32,0.03,0.21,0.10}。

1) 为这8个字母设计Huffman编码。

26构造连通网最小生成树的两个典型算法是______。

27.求图的最小生成树有两种算法,______算法适合于求稀疏图的最小生成树。

28. Prim(普里姆)算法适用于求______的网的最小生成树;kruskal(克鲁斯卡尔)算法适用于求______的网的最小生成树。

29.克鲁斯卡尔算法的时间复杂度为______,它对______图较为适合。

30.对于含N个顶点E条边的无向连通图,利用Prim算法生成最小代价生成树其时间复杂度为______,利用Kruskal算法生成最小代价生成树其时间复杂度为______。

31考虑下图:
(1)从顶点A出发,求它的深度优先生成树
(2)从顶点E出发,求它的广度优先生成树
(3)根据普利姆(Prim) 算法,
求它的最小生成树
32已知一个无向图如下图所示,要求分别用Prim和Kruskal算法生成最小树(假设以①为起点,试画出构造过程)。

33已知图的邻接矩阵为:
V1 V2 V3 V4 V5 V6 V7 V8 V9 V10
V1 0 1 1 1 0 0 0 0 0 0
V2 0 0 0 1 1 0 0 0 0 0
V3 0 0 0 1 0 1 0 0 0 0
V4 0 0 0 0 0 1 1 0 1 0
V5 0 0 0 0 0 0 1 0 0 0
V6 0 0 0 0 0 0 0 1 1 0
V7 0 0 0 0 0 0 0 0 1 0
V8 0 0 0 0 0 0 0 0 0 1
V9 0 0 0 0 0 0 0 0 0 1
V10 0 0 0 0 0 0 0 0 0 0
1 4 9 10 7 6 8 3
2 5
1 4 3
2 9 7 6 5 10 8
1 4 3
2 9 7 6 5 10 8
当用邻接表作为图的存储结构,且邻接表都按序号从大到小排序时,试写出:
(1).以顶点V1为出发点的唯一的深度优先遍历;
(2).以顶点V1为出发点的唯一的广度优先遍历;
(3).该图唯一的拓扑有序序列。

【同济大学 1998 一 (12分 )】
45.已知一图如下图所示:
(1).写出该图的邻接矩阵;
(2).写出全部拓扑排序;
(3).以v1为源点,以v8为终点,给出所有事件允许发生的最早时间和最晚时间,并给出关键路径;
(4).求V1结点到各点的最短距离。

【北京邮电大学 2000 五(15分)】
1构造连通网最小生成树的两个典型算法是___
2.求图的最小生成树有两种算法,______算法适合于求稀疏图的最小生成树
3 Prim(普里姆)算法适用于求______的网的最小生成树;kruskal(克鲁斯卡尔)算法适用于求______的网的最小生成树。

4克鲁斯卡尔算法的时间复杂度为______,它对______图较为适
5对于含N个顶点E条边的无向连通图,利用Prim算法生成最小代价生成树其时间复杂度为______,利用Kruskal 算法生成最小代价生成树其时间复杂度为______。

6考虑右图:
(1)从顶点A出发,求它的深度优先生成树
(2)从顶点E出发,求它的广度优先生成树
(3)根据普利姆(Prim) 算法,求它的最小生成树
8已知一个无向图如下图所示,要求分别用Prim和Kruskal算法生成最小树(假设以①为起点,试画出构造过程)。

9题
9已知连通图如下:
(1).给出本图的邻接表;
(2).若从顶点B出发对该图进行遍历,在(1)的基础上分别给出本图的按深度优先搜索和按广度优先搜索的顶点序列;
(3).写出按深度优先搜索的递归程序。

1、什么叫串?串和字符在存储方法上有什么不同?可以用几种存储方法存储串?分别写出串的静态数组存储结构和串的动态数组存储结构的结构体定义。

2、串是由字符组成的,长度为1的串和字符是否相同。

为什么?
3、串是不定长的,表示串的长度有几种方法?C语言中的串采用哪种方法?
4、可以说串是数据类型固定为字符类型的线性表,但是串操作和线性表操作的主要不同之处在哪里?
5、简述下列每对术语的区别:空串和空白串;串常量和串变量;主串和子串;静态分配的顺序串和动态分配的顺序串;目标串和模式串。

6、两个字符串S1和S2的长度分别为m和n。

求这两个字符串最大共同子串算法的时间复杂度为T(m,n)。

估算最优的T(m,n),并简要说明理由。

7、设S1 =“Data Structure Course”,S2 =“Structure”,S3 =“Base”,求:
(1)Length(S1);
(2)Compare(S2, S3);
(3)Insert(S1, 5, S3);
(4)Delete(S1, 5, 9);
(5)SubString(S1, 5, 9, T);
(6)Search(S1, 0, S2);
(7)Replace(S1, 0, S2, S3)
8试利用KMP算法和改进算法分别求p1='abcabaa'和p2='aabbaab'的NEXT函数和NEXTV AL函数。

相关文档
最新文档