数据结构复习模拟题5
数据结构模拟题目
![数据结构模拟题目](https://img.taocdn.com/s3/m/c48328a0dd3383c4bb4cd2f5.png)
模拟题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篇](https://img.taocdn.com/s3/m/20d5b3cfb9f67c1cfad6195f312b3169a451ea37.png)
数据结构复习题及答案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.在用散列表存储关键码集合时,可以用双散列法寻找下一个空桶。
数据结构复习五
![数据结构复习五](https://img.taocdn.com/s3/m/2febcb3431126edb6f1a10ec.png)
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。
数据结构模拟试卷及参考答案
![数据结构模拟试卷及参考答案](https://img.taocdn.com/s3/m/5b4e271edc36a32d7375a417866fb84ae55cc360.png)
数据结构模拟试卷及参考答案一、简答题(共10题,每题10分,共计100分)1. 什么是数据结构?请简要解释。
数据结构是计算机中用于组织和存储数据的方式,它包含了一系列的数据元素,以及这些数据元素之间的关系和操作。
通过使用不同的数据结构,可以更高效地存储、查找和操作数据。
2. 请解释什么是栈,并给出一个栈的应用场景。
栈是一种具有特定操作限制的数据结构,它遵循"先进后出"(LIFO)的原则。
栈的应用场景包括函数调用、表达式求值、撤销操作以及浏览器中的历史记录。
3. 什么是队列?请给出一个队列的实际应用例子。
队列是一种具有特定操作限制的数据结构,它遵循"先进先出"(FIFO)的原则。
一个实际应用例子是操作系统的进程调度,进程按照到达时间加入队列,并按照一定规则出队执行。
4. 请解释什么是链表,并给出一个链表的优点和缺点。
链表是一种动态数据结构,它由一系列节点构成,每个节点包含数据和指向下一个节点的指针。
链表的优点是可以动态地分配内存空间,且插入和删除节点的时间复杂度为O(1)。
缺点是访问链表某个具体节点的时间复杂度为O(n),且需要额外的内存空间存储指针。
5. 请解释什么是树,并给出一个树的实际应用例子。
树是一种分层次的数据结构,它由一系列节点和节点之间的关系构成。
一个实际应用例子是文件系统的目录结构,文件和文件夹通过树的结构进行组织和存储。
6. 请解释什么是图,并给出一个图的实际应用例子。
图是一种由节点和节点之间的连接关系组成的数据结构。
一个实际应用例子是社交网络,人与人之间的关系可以用图来表示,每个人是一个节点,节点之间的连接表示关系。
7. 请解释什么是散列(哈希)表,以及它的优势和劣势。
散列表是一种根据关键字直接访问的数据结构,它通过将关键字映射到表中的位置来实现快速的查找操作。
散列表的优势是查找操作的平均时间复杂度为O(1)。
劣势是如果存在多个关键字映射到同一个位置,就会发生冲突,需要解决冲突问题。
数据结构模拟试题及答案
![数据结构模拟试题及答案](https://img.taocdn.com/s3/m/2399871dbd64783e09122b6a.png)
数据结构模拟试题一一、判断题(每小题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的有序表时,排序码的比较次数至少是___次,至多是___次。
数据结构模拟卷
![数据结构模拟卷](https://img.taocdn.com/s3/m/d0f2f3e8102de2bd960588c9.png)
一、判断题 (每题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的最短路径为()。
十套数据结构模拟题+答案
![十套数据结构模拟题+答案](https://img.taocdn.com/s3/m/f3810065336c1eb91b375d1f.png)
数据结构试卷(一)一、选择题(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参考答案.](https://img.taocdn.com/s3/m/35058b615acfa1c7aa00cc6f.png)
数据结构模拟试题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]);}。
《数据结构》3套模拟试题综合测试题带答案5
![《数据结构》3套模拟试题综合测试题带答案5](https://img.taocdn.com/s3/m/50417737ec630b1c59eef8c75fbfc77da2699794.png)
《数据结构》模拟试题13一、填空题(每小题2分,共18分)1、数据的逻辑结构包括,和三种结构。
2、队列是操作受限的线性结构,只能在插入元素,而在删除元素。
3、串是一种特殊的线性表,其特殊性体现在。
4、有一个10阶对称矩阵A,采用压缩存储方式采用压缩存储方式,以行为主存储下三角形到一个一维数组中,A[0][0]的地址是100(每个元素占2个基本存储单元),则A[5][9]的地址是。
5、在高度为h的二叉树的中只有度为0和度为2的结点,则该类二叉树中所包含的结点数至少为。
6、对于一个有n个顶点和e条边的无向图,若采用邻接链表存储,则表头向量的大小为,邻接表中的结点总数为。
7、对线性表进行二分查找时,要求线性表必须是,且要求。
8、对于文件,按物理结构划分,可分为顺序文件、文件、文件和多关键字文件。
9、外部排序的最基本方法是,其主要时间花费在方面。
二、单项选择题(请将答案写在题目后的括号中。
每题2分,共18分)1、如下函数是求1!+2!+…+n!,其时间复杂度是()。
Long int Sum (int n){ long int sum=0 , t=1 ; int p ;for (p=1; p<=n ;p++) { t=t*p ; sum+=t ; }return(sum) ;}(A)O(n) (B)O(n2) (C)O(㏒2n) (D)O(n㏒2n)2、设有一个栈顶指针为top的顺序栈S,则弹出S的栈定元素的操作是()。
(A)p=S[top++];(B)p=S[++top];(C)p=S[top--];(D)p=S[--top];3、广义表((a),((b),c),(((d))))的表头是,表尾是。
()(A)(a) ((b),c),(((d))) (B)(a) (((b),c),(((d))))(C)((a),((b),c)),(((d))) (D)(a) (((d)))4、一棵二叉树,其先序遍历序列是abdgehicf,中序遍历序列是gdbheiafc,则其后序遍历序列是( )。
数据结构-复习模拟
![数据结构-复习模拟](https://img.taocdn.com/s3/m/8ce3a206cc1755270722081a.png)
复习A一、判断题1.线性表的逻辑顺序总是与其物理顺序一致。
()2.在单链表中插入和删除数据比在顺序表中要方便。
()3.在一个有n个结点的链队列中出队一个结点的时间复杂度为O(1)。
()4.链队列的入队操作总是需要修改头指针,出队操作总是要修改尾指针。
()5.对二叉排序树进行中根遍历,可得到结点的有序排列。
()6. 边数很多的稠密图,适宜用邻接表表示。
()7. 进行折半查找的表必须是顺序存储的有序表。
( )8.哈希查找法中解决冲突问题的常用方法是除留余数法。
()9.在二叉排序树中插入新结点时,新结点总是作为叶子结点插入。
()10.对一个连通图进行一次深度优先搜索可以遍访图中的所有顶点。
( )二、单项选择题1.评价一个算法时间性能的主要标准是()A.算法易于调试B. 算法易于理解C.算法的稳定性和正确性D.算法的时间复杂度2.可用带表头结点的链表来表示表,也可用不带表头结点的链表来表示表,前者的主要好处是()A. 可以加快对表的遍历B. 使空表和非空表的处理统一C. 提高存取结点的速度D. 节省存储空间3.稀疏矩阵一般的压缩存储有两种,即()。
A.一维数组和二维数组 B.一维数组和三元组C.二维数组和十字链表 D.三元组和十字链表4.若进栈序列为a,b,c,d,进栈过程中可以出栈,则()不可能是一个出栈序列。
A.cbad B.bdca C.cdba D.adbc5.将一棵有100个结点的完全二叉树从根的这一层开始,每一层从左到右依次对结点进行编号,根结点编号为1,则编号为49的结点的左孩子的编号为()A.98 B.99 C.50 D.486.循环队列用数组A[M]存放元素,已知其头尾指针分别为front和rear,则当前队列中的元素个数是()。
A.rear-front+1 B.rear-front-1C.rear-front D.(rear-front+M) % M7.已知一棵二叉树的有35个叶子结点,则该二叉树至少有()个结点。
数据结构期末考试模拟试题
![数据结构期末考试模拟试题](https://img.taocdn.com/s3/m/8e51ed97dd88d0d233d46ab8.png)
一、填空题(每空1分,共20分)1、数据结构被形式地定义为(D, R),其中D是的有限集合,R是D上的有限集合。
2、一个算法的效率可用、来衡量。
3、向一个长度为n的向量的第i个元素(1≤i≤n+1)之前插入一个元素时,需向后移动个元素。
4、具有n个叶子结点的哈夫曼树,其结点总数是个。
5、一般情况下,快速排序的时间复杂度是。
6、向栈中压入元素的操作是先,后。
7、称为空串;称为空白串。
8、采用三元组表存储稀疏矩阵,三元是指。
9、具有10个结点的完全二叉树,其深度是。
10、线性有序表(a1,a2,a3,…,a20)是从小到大排列的,对一个给定的值k,用二分法检索表中与k相等的元素,在查找不成功的情况下,最多需要检索次。
11、散列法(哈希)存储的基本思想是由决定数据的存储地址。
12、具有n个顶点的无向图,最多有条边;如果该图是一个连通图,那它最少有条边;其生成树有条边。
13、每个结点的平衡因子的二叉排序树称为平衡二叉树,中序遍历该树可得到。
14、二、判断题(正确的画√,错误的画Χ;每题1分,共10分)1、队列是一种插入与删除操作分别在表的两端进行的线性表,是一种先进后出型结构。
2、根据二叉树的先序和中序遍历结果,可唯一确定该二叉树。
3、栈和队列的存储方式既可是顺序方式,也可是链接方式。
4、二叉树中所有结点,如果不存在非空左子树,则不存在非空右子树。
5、一个有向无环图进行拓扑排序,结果可能不唯一。
6、链表的删除算法很简单,因为当删除链中某个结点后,计算机会自动将后续各个单元向前移动。
7、用二叉链表存储包含n个结点的二叉树,结点的2n个指针域中有n+1个为空指针。
8、具有2个结点的二叉树有2种形态。
9、线性表在链式存储时,逻辑上相邻的元素在存储的物理位置次序上也一定不相邻。
10、顺序表结构适宜于进行顺序存取,而链表适宜于进行随机存取。
三、单项选择题(每小题2分,共30分)1、算法分析的目的是。
A、分析算法的易读性B、研究算法中输入和输出的关系C、分析算法的效率,以求改进D、找出合理的数据结构2、对图进行深度优先搜索时,使用的辅助存储结构是。
5数据结构复习题
![5数据结构复习题](https://img.taocdn.com/s3/m/b08037b11a37f111f1855bf1.png)
数据结构复习题1.何时选用顺序表、何时选用链表作为线性表的存储结构为宜?答:在实际应用中,应根据具体问题的要求和性质来选择顺序表或链表作为线性表的存储结构,通常有以下几方面的考虑:A.基于空间的考虑。
当要求存储的线性表长度变化不大,易于事先确定其大小时,为了节约存储空间,宜采用顺序表;反之,当线性表长度变化大,难以估计其存储规模时,采用动态链表作为存储结构为好。
B.基于时间的考虑。
若线性表的操作主要是进行查找,很少做插入和删除操作时,采用顺序表做存储结构为宜;反之,若需要对线性表进行频繁地插入或删除等的操作时,宜采用链表做存储结构。
并且,若链表的插入和删除主要发生在表的首尾两端,则采用尾指针表示的单循环链表为宜。
2.解释拓扑排序,并简述如何进行拓扑排序。
由某个集合上的一个偏序得到该集合上的一个全序,这个操作就成为拓扑排序。
拓扑排序的操作如下:1)在有向图中选一个没有前驱的顶点并输出之;2)从图中删除该顶点和所有以它为尾的弧。
重复上述两步,直至全部顶点均已输出,或者当前图中不存在无前驱的顶点为止。
后一种情况则说明有向图中存在环。
四、已知一树的双亲表示法如下,其中各兄弟结点是依次出现的,画出该树对应的二叉树。
dataparent3.写出下图所示的AOV 网的可能拓扑序列,要求至少写出五个。
答案:可能的拓扑序列有:1)Abdcef2)Abcdef3)bcedf4)Cabdef5)Cabedf6)Acbdef7)Acbedf4.设有一个求解汉诺塔(Hanoi )的递归算法void HANOI (int n , int peg1 , int peg2 , int peg3){if (n= =1)printf (”move %d to %d\n ”,peg1,peg3);else{HANOI (n-1, peg1, peg3, peg2);printf (”move %d to %d\n ”,peg1,peg3);HANOI (n-1, peg2, peg1, peg3) ;} A B C D E F}假定采用HANOI(3,1,2,3)去调用上述算法,则写出整个输出结果的前四行内容。
数据结构模拟题及答案
![数据结构模拟题及答案](https://img.taocdn.com/s3/m/c20c55d180eb6294dd886c25.png)
18. 有数据WG={7,19,2,6,32,3,21,10},则所建Huffman树的树高是 _ __ ,带权路径长度WPL为 _ __ 。
19. 求图的最小生成树有两种算法, ______ 算法适合于求稀疏图的最小生成树。
20. 可以唯一的标识一个记录的关键字称为__________。
11、 _______ 是限定仅在表尾进行插入或删除操作的线性表。
12、 循环队列的引入,目的是为了克服 _______ 。
13、 两个字符串相等的充分必要条件是 _______。
14、 已知数组 A[0..9,0..9]的每个元素占5个存储单元,将其按行优先次序存储在起始地址为1000的连续的内存单元中,则元素A[6,8]的地址为_______。
10、 线性表的特点是每个元素都有一个前驱和一个后继。( )
三、 单选题 (每题 1.5 分,共 30 分) :
1 . 对于 循环队列,下列说法错误的是( )
A. 可用顺序存储结构 B. 会产生下溢
C. 不会产生上溢 D.不会产生假溢
2. 若完全无向图有n 个顶点,则边的数目为( ):
A.9 B.11 C.15 D.不确定
18. 已知一棵二叉树的前序遍历结果为ABCDEF,中序遍历结果为CBAEDF,则后序遍历的结果为 ( )。
A.CBEFDA B. FEDCBA C. CBEDFA D.不定
19. 具有12个关键字的有序表,折半查找的平均查找长度( )
14、 直接插入排序用监视哨的作用是 ___________________。
15、 一个字符串中 ________________ 称为该串的子串 。
16 . 广义表(a,(a,b),d,e,((i,j),k))的长度是 _ ,深度是 _ 。
精品数据结构模拟题
![精品数据结构模拟题](https://img.taocdn.com/s3/m/c3c5b48a10a6f524ccbf85c7.png)
for ( int i=0; i<10; i++)
cout<<B[i]<<” “;
cout<<endl;
}
调用该算法后,输出结果为:
五、算法填空,在画有横线的地方填写合适的内容(10分)。
利用单链表进行数据排序。
void LinkSort (ElemType a[ ],int n)
2、从一维数组a[n]中顺序查找出一个最大值元素的时间复杂度为________,输出一个二维数组b[m][n]中所有元素值的时间复杂度为________。
3、在归并排序中,进行每趟归并的时间复杂度为________,整个排序过程的时间复杂度为________,空间复杂度为________。
4、在一棵m阶B_树上,每个非树根结点的关键字数目最少为________个,最多为________个,其子树数目最少为________,最多为________。
5、当从一个小根堆中删除一个元素时,需要把________元素填补到________位置,然后再按条件把它逐层________调整。
6、快速排序在平均情况下的时间复杂度为________,在最坏情况下的时间复杂度为________。
7、从一棵二叉搜索树中查找一个元素时,若元素的值等于根结点的值,则表明_______,若元素的值小于根结点的值,则继续向________查找,若元素的大于根结点的值,则继续向________查找。
2、对以下图,试给出一种拓扑序列,若在它的邻接表存储结构中,每个顶点邻接表中的边结点都是按照终点序号从大到小链接的,则按此给出唯一一种拓扑序列。
四、阅读算法,回答问题(每小题5分,共20分)
数据结构模拟试题附答案
![数据结构模拟试题附答案](https://img.taocdn.com/s3/m/6fa7b61fc281e53a5802fffc.png)
数据结构试卷(1)一、选择题(30分)1.设一组权值集合W={2,3,4,5,6},则由该权值集合构造的哈夫曼树中带权路径长度之和为()。
(A) 20 (B) 30 (C) 40 (D) 452.执行一趟快速排序能够得到的序列是()。
(A) [41,12,34,45,27] 55 [72,63](B) [45,34,12,41] 55 [72,63,27](C) [63,12,34,45,27] 55 [41,72](D) [12,27,45,41] 55 [34,63,72]3.设一条单链表的头指针变量为head且该链表没有头结点,则其判空条件是()。
(A) head==0 (B) head->next==0(C) head->next==head (D) head!=04.时间复杂度不受数据初始状态影响而恒为O(nlog2n)的是()。
(A) 堆排序(B) 冒泡排序(C) 希尔排序(D) 快速排序5.设二叉树的先序遍历序列和后序遍历序列正好相反,则该二叉树满足的条件是()。
(A) 空或只有一个结点(B) 高度等于其结点数(C) 任一结点无左孩子(D) 任一结点无右孩子6.一趟排序结束后不一定能够选出一个元素放在其最终位置上的是()。
(A) 堆排序(B) 冒泡排序(C) 快速排序(D) 希尔排序7.设某棵三叉树中有40个结点,则该三叉树的最小高度为()。
(A) 3 (B) 4 (C) 5 (D) 68.顺序查找不论在顺序线性表中还是在链式线性表中的时间复杂度为()。
(A) O(n) (B) O(n2) (C) O(n1/2) (D) O(1og2n)9.二路归并排序的时间复杂度为()。
(A) O(n) (B) O(n2) (C) O(nlog2n) (D) O(1og2n)10. 深度为k的完全二叉树中最少有()个结点。
(A) 2k-1-1 (B) 2k-1(C) 2k-1+1 (D) 2k-111.设指针变量front表示链式队列的队头指针,指针变量rear表示链式队列的队尾指针,指针变量s指向将要入队列的结点X,则入队列的操作序列为()。
数据结构模拟试题
![数据结构模拟试题](https://img.taocdn.com/s3/m/f44b201a59eef8c75fbfb32b.png)
设内存有大小为6个记录的缓冲区供内排序使用,文件的关键字序列为{29,50,70,33,38,60,28,31,43,36,25,9,80,100,57,18,65,2,78,30,14,20,17,99),试列出:
(1)用内排序求出初始归并段;
(2)用置换一选择排序求初始归并段。
六、(本题8分)
对于序列{8,18,6,16,29,28},试写出堆顶元素最小的初始堆。
七、(本题8分)
一棵二叉树的先序、中序和后序序列分别如下,其中有一部分未显示出来。试求出空格处的内容,并画出该二叉树。
先序序列:BFICEHG
中序序列:DKFIAEJC
后序序列:KFBHJGA
八、(每小题2分,共8分)
(3)( )不是队列的基本运算。
设有一个输入数据的序列是{46, 25, 78, 62, 12, 80 },试画出从空树起,逐个输入各个数据而生成的二叉搜索树。
九、(本题9分)
试画出表达式(a+b/c)*(d-e*f)的二叉树表示,并写出此表达式的波兰式表示,中缀表示及逆波兰式表示。
十、(本题15分)
以二叉链表作存储结构,试编写计算二叉树中叶子结点数目的递归算法。
模拟试题(三)
一、单项选择题(每小题2分,共20分)
(1)对一个算法的评价,不包括如下( )方面的内容。
A)健壮性和可读性B)并行性C)正确性D)时空复杂度
(2)在带有头结点的单链表HL中,要向表头插入一个由指针p指向的结点,则执行( )。
A)p->next=HL->next; HL->next=pB)p->next=HL; HL=p
A)14B)5C)6D)8
数据结构复习题-第5章答案2021-6-16
![数据结构复习题-第5章答案2021-6-16](https://img.taocdn.com/s3/m/250dbd22c1c708a1294a4464.png)
第 5 章数组与广义表一、选择题(每题1 分,共10 分)1. 一个向量第一个元素的存储地址是100,每个元素的长度为2,那么第5 个元素的地址是( A )。
A. 110B.108C.100D.1202. 在数组A中,每一个数组元素A[i][j] 占用3个存储字节,行下标i从1到8,列下标j 从1到10。
所有数组元素相继存放于一个连续的存储空间中,那么存放该数组至少需要的存储字节数是( C )。
A.80B.100C.240D.2703. 假设有60行70列的二维数组a[1…60, 1…70]以列序为主序顺序存储,其基地址为10000, 每个元素占 2 个存储单元, 那么第32 行第58 列的元素a[32,58] 的存储地址为 ( C )。
(无第0 行第0 列元素)A.16902B.16904C.14454D. 答案A, B, C 均不对4. 将一个A[1..100 , 1..100]的三对角矩阵,按行优先存入一维数组B[1 •- 298]中,A中元素A6665 (即该元素下标i=66 , j=65 ),在B数组中的位置K为(A )。
A. 198B. 195C. 197D.1965. 数组A[0..5,0..6] 的每个元素占五个字节,将其按列优先次序存储在起始地址为1000的内存单元中,那么元素A[5,5] 的地址是( A )。
A. 1175B. 1180C. 1205D. 12106. 假设以行序为主序存储二维数组A=array[1..100 ,1..100] ,设每个数据元素占2个存储单元,基地址为10,那么LOC[5,5]= ( B )。
A. 808B. 818C. 1010D. 10207. 设有数组A[i,j] ,数组的每个元素长度为3 字节,i 的值为1 到8,j 的值为1 到10,数组从内存首地址BA开始顺序存放,当用以列为主存放时,元素A[5 , 8]的存储首地址为B )。
A. BA+141B. BA+180C. BA+222D. BA+2258. 设有一个10阶的对称矩阵A,采用压缩存储方式,以行序为主存储,all为第一元素,其存储地址为1,每个元素占一个地址空间,那么a85 的地址为( B )。
数据结构模拟试题
![数据结构模拟试题](https://img.taocdn.com/s3/m/b12aba2ce2bd960590c677cd.png)
数据结构模拟试题一、单选题(每小题2分,共12分)1.在一个长度为n的顺序存储的线性表中,向第i个元素(1≤i≤n+1)的位置插入一个新元素时,需要从后向前依次后移( )个元素。
A.n-i B.n-i+1 C.n-i-1 D.i ,2.在一个单链表HL中,若要删除由指针q所指向结点的后继结点,则执行()。
A.p=q->next;p->next=q->next; B.p=q->next;q->next=p;C.p=q->next;q->next=p->next; D.q->next=q->next->next;q->next=q;3.当利用大小为N的数组顺序存储一个队列时,该队列的最大长度为( )。
A.N-2 B.N-1 C.N D.N+14.根据n个元素建立一棵二叉搜索树时,其时间复杂度大致为( )。
A.O(lon2n) B.O(n) C.O(nlog2n) D.O(n2)5.向具有n个结点的堆中插入一个新元素的时间复杂度为( )。
A.O(1) B.O(n) C.O(log2n) D.O(nlog2n)6.对长度为3的顺序表进行搜索,若搜索第一个元素的概率为1/2,搜索第二个元素的概率为l/3,搜索第三个元素的概率为l/6,则搜索任一元素的平均搜索长度为( )。
A.5/3 B.2 C.7/3 D.4/3二、填空题(每空1分,共28分)1.数据的存储结构被分为顺序结构、链接结构、和四种。
2.对于一个长度为n的单链接存储的线性表,在表头插入结点的时间复杂度为,在表尾插入元素的时间复杂度为。
3.中缀表达式3*x+(2.4/5.6-7.3)所对应的后缀表达式为。
4.一棵深度为4的满二叉树中的结点数为个,一棵深度为3的满四叉树中的结点数为个。
5.对于一棵含有40个结点的理想平衡树,它的高度为。
6.从一棵二叉搜索树中查找一个元素时,若给定值等于根结点的值,则表明,若给定值小于根结点的值,则继续向查找,若给定值大于根结点的值,则继续向查找。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 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函数。