数据结构自测题
数据结构自测题及答案
数据结构自测题及答案**数据结构自测题及答案**一、选择题(每题2分,共10分)1. 数据结构是一种用于组织和管理数据的方式,它主要关注的是:A. 数据的存储和表示方式B. 数据的输入和输出方式C. 算法和数据的交互方式D. 数据处理的速度和效率2. 在数据结构中,数组是一种:A. 线性结构B. 树形结构C. 图形结构D. 集合结构3. 下列哪种数据结构是先进先出(FIFO)的:A. 栈B. 队列C. 链表D. 哈希表4. 在二叉树中,每个节点最多有几个子节点:A. 0B. 1C. 2D. 35. 下列哪种数据结构适合用于实现图的存储:A. 数组B. 链表C. 堆D. 散列表二、填空题(每题2分,共10分)1. 在栈中,最后一个进入栈的元素最先出栈,这种特点叫做**后进先出**。
2. 哈希表一般是通过**散列函数**将键映射到存储位置上。
3. 图中节点之间的关系可以用**边**来表示。
4. 在二叉搜索树中,左子树的值都小于根节点的值,右子树的值都大于根节点的值,这种特点叫做**二叉搜索树的性质**。
5. 在链表中,每个节点都包含一个指向下一个节点的**指针**。
三、判断题(每题2分,共10分)1. 队列是一种先进先出(FIFO)的数据结构。
(正确)2. 图是一种非线性的数据结构。
(正确)3. 二叉树是一种树形数据结构,每个节点最多有两个子节点。
(正确)4. 栈可以用数组和链表两种方式实现。
(正确)5. 哈希表的插入和查询操作的时间复杂度都为O(1)。
(错误)四、程序设计题(总分20分)请编写一个程序,实现以下功能:1. 定义一个结构体,用于表示学生信息,包含姓名、年龄和成绩三个字段。
2. 动态创建一个长度为5的数组,用于存储学生信息。
3. 通过键盘输入,依次为每个学生的姓名、年龄和成绩赋值,并存储到数组中。
4. 分别计算学生的平均年龄和平均成绩,并输出结果。
代码示例(C语言):```c#include<stdio.h>#include<stdlib.h>struct Student {char name[20];int age;float score;};int main() {struct Student* students = (struct Student*)malloc(5 * sizeof(struct Student));for (int i = 0; i < 5; i++) {printf("请输入第 %d 个学生的姓名:", i + 1);scanf("%s", students[i].name);printf("请输入第 %d 个学生的年龄:", i + 1);scanf("%d", &students[i].age);printf("请输入第 %d 个学生的成绩:", i + 1);scanf("%f", &students[i].score);printf("\n");}int totalAge = 0;float totalScore = 0.0;for (int i = 0; i < 5; i++) {totalAge += students[i].age;totalScore += students[i].score;}float avgAge = totalAge / 5.0;float avgScore = totalScore / 5.0;printf("平均年龄: %.2f\n", avgAge);printf("平均成绩: %.2f\n", avgScore);free(students);return 0;}```以上就是自测题及答案的全部内容。
数据结构试卷试卷及答案5套
数据结构试卷试1一、解释下列术语(每小题4分,共20分)1. 头指针2. 二叉排序树的定义3. 头结点4. 数据的逻辑结构5. 排序方法的稳定性二、选择填空(每小题2分,共20分)(在每小题的4 个备选答案中,选出一个正确的答案,多选少选均不得分)1. 在一个长度为n的顺序表中,在第i个元素(1≤i≤n+1)之前插入一个新元素时顺向后移动( ) 个元素A.n-iB. n-i+1C. n-i-1D.i2. 某个栈的输入序列为1,2,3,4,下面的四个序列中( )不可能是它的输出序列A.1,2,3,4B.2,3,4,1C. 4,3,2,1D.3,4, 1,23. 对二叉排序进行( )遍历可以得到结点的排序序列A.前序B.中序C. 后序D.按层次4.有64个结点的完全二叉树的深度为()。
A 8B 7C 6D 55.折半查找法的时间复杂度是( )A.(n2)B.O(n)C. O(n㏒n)D. O(㏒n)6.A(1:5,1:6)的每个元素占5个单元,将其按行优先次序储存在起始地址为1000的连续的内存单元中,则元素A[5,5]的地址为()。
A 1140B 1145C 1120D 11257. 有n个叶子结点的哈夫曼树的结点总数为()。
A 不确定B 2nC 2n+1D 2n-18. 已知某二叉树的后序遍历序列是dabec, 中序遍历序列是debac, 则它的前遍历序列是()。
A acbedB decabC deabcD cedba9.若循环队列用数组A(0:m-1)存放其元素值,已知其头、尾指针分别是f和r,则当前队列中的元素个数是()。
A (r-f+m)mod mB r-f+1C r-f-1D r-f10. 一个二叉树的先序序列和后序序列正好相反,则该二叉树一定是()的二叉树(树中结点个数大于1)。
A 空或只有一个结点B 高度等于其结点数C 任一结点无左孩子 D任一结点无右孩子三,判断题(每小题2分,对的打√,错的打×,共10分)1.若图G的最小生成树不唯一,则G的边数一定多于n-1,并且权值最小的边有多条(其中n为G的顶点数)。
数据结构自测题及答案
第一章概论自测题答案一、填空题1. 数据结构是一门研究非数值计算的程序设计问题中计算机的操作对象以及它们之间的关系和运算等的学科。
2. 数据结构被形式地定义为(D, R),其中D是数据元素的有限集合,R是D上的关系有限集合。
3. 数据结构包括数据的逻辑结构、数据的存储结构和数据的运算这三个方面的内容。
4. 数据结构按逻辑结构可分为两大类,它们分别是线性结构和非线性结构。
5. 线性结构中元素之间存在一对一关系,树形结构中元素之间存在一对多关系,图形结构中元素之间存在多对多关系。
6.在线性结构中,第一个结点没有前驱结点,其余每个结点有且只有1个前驱结点;最后一个结点没有后续结点,其余每个结点有且只有1个后续结点。
7. 在树形结构中,树根结点没有前驱结点,其余每个结点有且只有1个前驱结点;叶子结点没有后续结点,其余每个结点的后续结点数可以任意多个。
8. 在图形结构中,每个结点的前驱结点数和后续结点数可以任意多个。
9.数据的存储结构可用四种基本的存储方法表示,它们分别是顺序、链式、索引和散列。
10. 数据的运算最常用的有5种,它们分别是插入、删除、修改、查找、排序。
11. 一个算法的效率可分为时间效率和空间效率。
二、单项选择题(B)1. 非线性结构是数据元素之间存在一种:A)一对多关系B)多对多关系C)多对一关系D)一对一关系(C )2. 数据结构中,与所使用的计算机无关的是数据的结构;A)存储B)物理C)逻辑D)物理和存储(C)3. 算法分析的目的是:A)找出数据结构的合理性B)研究算法中的输入和输出的关系C) 分析算法的效率以求改进D)分析算法的易懂性和文档性(A)4. 算法分析的两个主要方面是:A)空间复杂性和时间复杂性B)正确性和简明性C)可读性和文档性 D)数据复杂性和程序复杂性(C )5. 计算机算法指的是:A)计算方法 B) 排序方法 C)解决问题的有限运算序列 D)调度方法(B )6. 计算机算法必须具备输入、输出和等5个特性。
数据结构自测题答案
单选题
1.在深度为5的满二叉树中,叶子节点个数为?( C )
A:32 B: 31 C: 16 D:15
2.如果进栈序列为:e1,e2,e3,e4则出栈序列正确的是?(B )
A: e3,e1,e4,e2
B: e2,e4,e3,e1
C: e3,e4,e1,e2
D: 任意序列
3.数据的__C___包括集合结构、线性结构、树结构和图状结构四个基本类型。
A:算法描述
B:基本运算
C:逻辑结构
D:存储结构
4.数据的存储结构包括:顺序、___D__、索引和散列四个基本类型。
A:向量
B:数组
C:集合
D:链式
5.假设一个栈的输入顺序为:A,B,C,D,E则下列不可能是栈的输出序列的是?(b)
A:BCDAE
B: EDACB
C: BCADE
D: AEDCB
6.线性表的二分法查询的前提条件是?(A)
A:线性表以顺序方式存储,并且按关键码值排好序
B: 线性表以链式方式存储,并且按关键码值排好序
C: 线性表以顺序方式存储, 并且按关键码的检索频率排好序
D: 线性表以链式方式存储, 并且按关键码的检索频率排好序
7.以下四种排序方法,需要附加内存空间最大的是?(D)
A:插入排序
B: 选择排序
C: 快速排序
D: 归并排序
8.在顺序栈中进行退栈操作时,___D___。
A;谁先谁后都可以
B:先移动栈顶指针,后取出元素
C:不分先后,同时进行
D:先取出元素,后移动栈顶指针
填空题
9.稳定的排序方法有:插入派讯、冒泡排序和归并排序。
10.线性链表属于数据结构中的_____存储___结构。
数据结构自测题答案
第1章绪论二、填空题1. 4种基本结构是:集合、线性结构、树形结构、图状结构。
2. 树形结构中元素的关系是一对多,图形结构中元素的关系是多对多。
3. 顺序存储结构中数据元素的存储位置与其逻辑顺序是对应的。
4. 算法效率的度量方法有:事后统计方法和事前分析估算方法。
5. 好算法应达到的目标:正确性、可读性、健壮性、执行时间短、存储量低。
6. 抽象数据类型可细分为3种:原子类型、固定聚合类型和可变聚合类型。
7. 抽象数据类型的定义包括:数据对象的定义、数据关系的定义、基本操作的定义。
三、判断题五、应用题1. 按增长率从小到大的顺序排列下列各函数:(2/3)n ,nlog,n ,n2 ,n!22. 写出以下各函数的功能,并求出其时间复杂度。
(1) 功能是判断n是否为素数,时间复杂度为O(√n ) 。
(2) 功能是计算1!+2!+…+n! ,时间复杂度为O(n ) 。
(3) 功能是计算1!+2!+…+n! ,时间复杂度为O(n2 ) 。
六、算法题1. 编写算法计算1!+2!+…+n!,并使算法的时间复杂度为O(n)。
算法思想:用循环实现阶乘的累加求和,注意在求n!时,使用前一次循环中已经求出的(n-1)!的结果。
double factorial(int n){ int i;double p=1, sum=0;for( i=1; i<=n; i++){ p=p*i;sum=sum+p;}return(sum);}2. 编写算法计算2i (i=0,1,2,…,n),并将计算结果存入数组a中,设计算机中允许的最大整数值为MAXINT,则当2k >MAXINT(0≤k≤n)时,应进行出错处理。
算法思想:先判断n的取值是否合法,若非法则直接退出程序,若n 合法则继续计算2i,在计算2i时,需要判断2i的值是否大于MAXINT/2,这个条件其实就是判断2i+1的值是否大于MAXINT#define arrsize 100#define MAXINT 65535void calculate(int a[ ], int n){ int i;if(n<=0 || n>arrsize){ printf("n error!\n");exit(-1);}a[0]=1;printf("a[0]=%d\n", a[0]);for(i=1; i<n; i++){ a[i]=a[i-1]*2;printf("a[%d]=%d\n", i, a[i]);if( a[i]>MAXINT/2 ){ printf(“i=%d, ERROR!\n”, i+1);break;}}}第2章线性结构一、选择题二、填空题1. 需向后移动__n-i+1____个元素。
数据结构自测题及解答
一、概念题(每空0.5分,共28分)1.树(及一切树形结构)是一种“________”结构。
在树上,________结点没有直接前趋。
对树上任一结点X来说,X是它的任一子树的根结点惟一的________。
2.由3个结点所构成的二叉树有种形态。
3.一棵深度为6的满二叉树有个分支结点和个叶子。
4.一棵具有257个结点的完全二叉树,它的深度为。
5.二叉树第i(i>=1)层上至多有______个结点;深度为k(k>=1)的二叉树至多有______个结点。
6.对任何二叉树,若度为2的节点数为n2,则叶子数n0=______。
7.满二叉树上各层的节点数已达到了二叉树可以容纳的______。
满二叉树也是______二叉树,但反之不然。
8.设一棵完全二叉树有700个结点,则共有个叶子结点。
9.设一棵完全二叉树具有1000个结点,则此完全二叉树有个叶子结点,有个度为2的结点,有个结点只有非空左子树,有个结点只有非空右子树。
10.一棵含有n个结点的k叉树,可能达到的最大深度为,最小深度为。
11.二叉树的基本组成部分是:根(N)、左子树(L)和右子树(R)。
因而二叉树的遍历次序有六种。
最常用的是三种:前序法(即按N L R次序),后序法(即按次序)和中序法(也称对称序法,即按L N R次序)。
这三种方法相互之间有关联。
若已知一棵二叉树的前序序列是BEFCGDH,中序序列是FEBGCHD,则它的后序序列必是。
12.中序遍历的递归算法平均空间复杂度为。
13.二叉树通常有______存储结构和______存储结构两类存储结构。
14.如果将一棵有n个结点的完全二叉树按层编号,则对任一编号为i(1<=i<=n)的结点X有:(1)若i=1,则结点X是______;若i〉1,则X的双亲PARENT(X)的编号为______。
(2)若2i>n,则结点X无______且无______;否则,X的左孩子LCHILD(X)的编号为______。
数据结构自测题
数据结构自测题1、算法的计算量的大小称为计算的()。
A. 效率B. 复杂性C. 现实性D. 难度2、一个算法应该是()。
A.程序B.问题求解步骤的描述C.要满足五个基本特性D.A和C.3、下面说法错误的是()(1)算法原地工作的含义是指不需要任何额外的辅助空间(2)在相同的规模n下,复杂度O(n)的算法在时间上总是优于复杂度O(2n)的算法(3)所谓时间复杂度是指最坏情况下,估算算法执行时间的一个上界(4)同一个算法,实现语言的级别越高,执行效率就越低A.(1) B. (1), (2) C. (1), (4) D. (3)4、在数据结构中,从逻辑上可以将之分为()。
A. 动态结构和静态结构B. 紧凑结构和非紧凑结构C. 内部结构和外部结构D. 线性结构和非线性结构5、计算算法的时间复杂度是属于一种()。
A. 事前统计的方法B. 事前分析估算的方法C. 事后统计的方法D. 事后分析估算的方法6、可以用()定义一个完整的数据结构:A. 数据元素B. 数据对象C. 数据关系D. 抽象数据类型7、算法分析的目的是_______。
A. 找出数据结构的合理性B. 研究算法中的输入和输出的关系C. 分析算法的效率以求改进D. 分析算法的易懂性和文档性8、设计一个“好”的算法应考虑达到的目标有______。
A. 是可行的B. 是健壮的C. 无二义性D. 可读性好线性表1、线性表是具有n个()的有限序列(n>0)。
A.表元素B.字符C.数据元素D.数据项2、若线性表最常用的操作是存取第I个元素及其前驱和后继元素的值,为节省时间应采用的存储方式()。
A.单链表B.双向链表C.单循环链表D.顺序表3、某线性表中最常用的操作是在最后一个元素之后插入一个元素和删除第一个元素,则采用()存储方式最节省运算时间。
A. 单链表B. 仅有头指针的单循环链表C. 双链表D. 仅有尾指针的单循环链表4、设一个链表最常用的操作是在末尾插入结点和删除尾结点,则选用()最节省时间。
数据结构第一章自测题及答案
《数据结构》课程第一章小测验一、判断题:(每题2分,共4分)1、数据元素是数据的最小单位。
F2、线性表采用链表存储时,结点和结点内部的存储空间可以是不连续的。
F链表的存储中结点之间可以是连续的,也可以是不连续的。
但结点内部是连续的。
答题区二、选择题:(每题2分,共16分)1、线性表是具有n个()的有限序列。
C(A)表元素(B)字符(C)数据元素(D)数据项2、如果数据结构中每个结点都有一个前驱,则该结构属于()。
A(A)图状结构(B)树形结构(C)循环结构(D)线性结构3、如果数据结构中每个结点都没有后继,则该结构属于()。
D(A)独立结构(B)散列结构(C)树形结构(D)非线性结构4、算法的时间复杂度与()有关。
A(A)问题规模(B)计算机硬件性能(C)编译程序质量(D)程序设计语言5、算法的执行时间一般与()无关。
D(A)问题规模的大小(B)计算机的档次(C)程序设计语言的种类或版本(D)算法设计者的水平6、算法分析的主要任务是分析()。
D(A)算法是否具有较好的可读性(B)算法中是否存在语法错误(C)算法的功能是否符合设计要求(D)算法的执行时间和问题规模之间的关系7、某算法的时间复杂度为O(2n),表明该算法的()。
C(A)问题规模是2n(B)执行时间等于2n(C)执行时间与2n成正比(D)问题规模与2n成正比8、在决定选取何种存储结构时,一般不考虑()。
A(A)各结点的值如何(B)结点数目的多少(C)对数据有哪些运算(D)所用编程语言实现这种结构是否方便三、填空题:(每空2分,共14分)1、数据的存储结构可用四种基本的存储方法表示,它们分别是顺序、链式、索引和散列。
2、一个算法的效率可分为时间效率和空间效率。
3、线性表是具有n个数据元素有限序列。
四、简答题:(每题10分,共20分)1.数据结构和数据类型两个概念之间有区别吗?答:简单地说,数据结构定义了一组按某些关系结合在一起的数据元素。
数据结构自测题及解答
一、概念题(每空0.5分,共28分)1.树(及一切树形结构)是一种“________”结构。
在树上,________结点没有直接前趋。
对树上任一结点X来说,X是它的任一子树的根结点惟一的________。
2.由3个结点所构成的二叉树有种形态。
3.一棵深度为6的满二叉树有个分支结点和个叶子。
4.一棵具有257个结点的完全二叉树,它的深度为。
5.二叉树第i(i>=1)层上至多有______个结点;深度为k(k>=1)的二叉树至多有______个结点。
6.对任何二叉树,若度为2的节点数为n2,则叶子数n0=______。
7.满二叉树上各层的节点数已达到了二叉树可以容纳的______。
满二叉树也是______二叉树,但反之不然。
8.设一棵完全二叉树有700个结点,则共有个叶子结点。
9.设一棵完全二叉树具有1000个结点,则此完全二叉树有个叶子结点,有个度为2的结点,有个结点只有非空左子树,有个结点只有非空右子树。
10.一棵含有n个结点的k叉树,可能达到的最大深度为,最小深度为。
11.二叉树的基本组成部分是:根(N)、左子树(L)和右子树(R)。
因而二叉树的遍历次序有六种。
最常用的是三种:前序法(即按N L R次序),后序法(即按次序)和中序法(也称对称序法,即按L N R次序)。
这三种方法相互之间有关联。
若已知一棵二叉树的前序序列是BEFCGDH,中序序列是FEBGCHD,则它的后序序列必是。
12.中序遍历的递归算法平均空间复杂度为。
13.二叉树通常有______存储结构和______存储结构两类存储结构。
14.如果将一棵有n个结点的完全二叉树按层编号,则对任一编号为i(1<=i<=n)的结点X有:(1)若i=1,则结点X是______;若i〉1,则X的双亲PARENT(X)的编号为______。
(2)若2i>n,则结点X无______且无______;否则,X的左孩子LCHILD(X)的编号为______。
数据结构自测试题及答案
数据结构自测题1一、单项选择题1.线性表若采用链表存储结构时,要求内存中可用存储单元的地址( D )。
A.必须是连续的B.部分地址必须是连续的C.一定是不连续的D.连续不连续都可以2.在单链表中,增加头结点的目的是为了( C )A.使单链表至少有一个结点B.表示表结点中首结点的位置C.方便运算的实现D.说明单链表是线性表的链式存储实现3.设栈S和队列Q的初始状态为空,元素e1、e2、e3、e4、e5和e6依次通过栈S,一个元素出栈后即进入队列Q,若6个元素出队的顺序是e2、e4、e3、e6、e5、e1,则栈S的容量至少应是( B )A.2 B.3 C.4 D.54.树结构中,前驱结点与后继结点之间存在( B )关系。
A.一对一B.一对多C.多对一D.多对多5.堆栈的特性描述是( B )。
A.FIFO B.FILO C.FIFO和FILO D.FIFO或FILO6.队列的特性描述是( A )。
A.FIFO B.FILO C.FIFO和FILO D.FIFO或FILO7.下列数据结构中,是非线性结构的是( A )A.树B.堆栈C.队列D.循环队列8.设某个初始为空的容纳int型数据的堆栈进行了如下操作(每一步均未发生溢出):push(1)、push(3)、pop()、push(6)、push(1)、pop()、push(3)、push(8) 后,该堆栈中从栈顶到栈底的元素依次为( D )A.8 1 8 3 B.1 3 1 8 C.1 6 3 8 D.8 3 6 1二、判断题1.二叉树可以为空树。
(√)2.顺序表和链表都是线性表。
(√)3.线性表的长度是线性表占用的存储空间的大小。
(√)4.队列只能采用链式存储方式。
(×)5.由二叉树的先序序列和中序序列能唯一确定一棵二叉树。
(√)6.存在有偶数个结点的满二叉树。
(×)三、填空题1.数据结构是数据在计算机内的组成形式和相互关系。
2.二叉树的三种遍历方式分别为中序遍历、先序遍历和后序遍历。
数据结构(第二版) 模拟试题自测卷AB卷带答案3
试卷B一、选择题(本题共20分,每题2分)1.在数据结构中,从逻辑上可以把数据结构分成( ) 。
A .动态结构和静态结构 B. 线性结构和非线性结构 C. 紧凑结构和非紧凑结构 D. 内部结构和外部结构 2. 下列程序段的时间复杂度是( )count=0;for(k=1;k<=n;k*=2) for(j=1;j<=n;j++) count++;A.O(nlog2n)B.O(n)C.O(log2n)D.O(n2) 3. 以下描述错误的是:( )A. 线性表是n 个数据元素的有限非空集合。
B. 栈和队列都是操作受限的线性表。
C. 串(或字符串)是由零个或多个字符组成的有限序列。
D. 非空栈中的栈顶指针top 始终指向栈顶元素的下一个位置。
4. 若采用少用一个队列空间的方法来区分队满队空两种状态,则判定一个顺序循环队列 Q (最大队列长度MAXSIZE )为满队列的条件是( )。
A. Q.front=Q.rearB. Q.front!=Q.rearC. Q.front=(Q.rear+1) % MAXSIZED. Q.front!=(Q.rear+1) % MAXSIZE 5. 按照二叉树的定义,具有 3 个结点的二叉树有( )种。
A. 3 B. 4 C. 5 D. 66. 设矩阵A (如下图所示)是一个对称矩阵,为了节省存储,将其下三角(包括对角线)部分按行序存放在一维数组 B[n(n+1)/2]中,对下三角部分中任一元素 ai,j(i ≥j),在一维数组 B 的下标位置k 的值是( )。
A. i(i-1)/2+j-1 B. i(i-1)/2+j C. i(i+1)/2+j-1 D. i(i+1)/2+j0,01,01,11,01,11,1...............n n n n a a a A a a a ----⎡⎤⎢⎥⎢⎥=⎢⎥⎢⎥⎣⎦7. 有一个有序表为{5, 18,23, 33, 42, 54,56,78},当折半查找56时,经过( )次比较后查找成功。
数据结构在线自测
单项选择题第1题由权值分别为3,8,6,2,5的叶子结点生成一棵哈夫曼树,它的带权路径长度为( )A、48B、51C、63D、72第2题按照二叉树的定义,具有3个结点的二叉树有()种。
A、3B、4C、5D、6第3题有n个结点的二叉树,采用二叉链表存储,空指针的个数为()A、n-1B、nC、n+1D、n+2第4题在有n个结点的哈夫曼树中,总的结点个数是()。
A、nB、2n-1C、2nD、2n+1第5题若一棵二叉树具有10个度为2的结点,则该二叉树的度为0的结点个数是( )A、9B、10C、11D、12第6题要连通具有n个顶点的有向图,至少需要()条边。
A、n-1B、nC、n+1D、2n判断题第7题后序序列和中序序列能唯一确定一棵二叉树。
正确错误第8题常用的图的遍历算法包括深度优先搜索和广度优先搜索。
正确错误第9题图G由两个集合V(G)和E(G)所组成,其中顶点集V(G)和边集E(G)都可以为空集。
正确错误第10题图是非线性结构。
正确错误第11题邻接表表示法和邻接矩阵表示法是图的常用的存储方法。
正确错误第12题一个有向无环图的拓扑排序序列是唯一的。
()正确错误单项选择题第1题下列排序方法中,稳定的是()A、快速排序B、堆排序C、基数排序D、希尔排序第2题排序方法中,从未排序序列中依次取出元素与已排序序列(初始时为空)中的元素进行比较,将其放入已排序序列的正确位置上的方法,称为()。
A、希尔排序B、起泡排序C、直接插入排序D、简单选择排序第3题在待排序的元素序列基本有序的前提下,效率最高的排序方法是()。
A、直接插入排序B、简单选择排序C、快速排序D、2路归并排序第4题下列排序方法中,稳定的是()A、快速排序B、堆排序C、希尔排序D、基数排序第5题衡量查找算法效率的主要标准是()。
A、元素个数B、所需的存储量C、平均查找长度D、算法难易程度第6题一个排序算法的时间复杂度与()有关。
A、排序算法的稳定性B、所需比较关键字的次数C、所采用的存储结构D、所需辅助存储空间的大小判断题第7题快速排序并非在任何情况下都比其他排序方法速度快。
《数据结构》第3章自测卷(+答案)
第3章栈和队列一、填空题1. 线性表、栈和队列都是线性结构,可以在向量的任何位置插入和删除元素;对于栈只能在栈顶插入和删除元素;对于队列只能在队尾插入和队头删除元素。
2. 栈是一种特殊的线性表,允许插入和删除运算的一端称为栈顶。
不允许插入和删除运算的一端称为栈底。
3. 队列是被限定为只能在表的一端进行插入运算,在表的另一端进行删除运算的线性表。
4. 在一个循环队列中,队首指针指向队首元素的前一个位置。
5. 在具有n个单元的循环队列中,队满时共有n-1个元素。
6. 向栈中压入元素的操作是先移动栈顶指针,后存储元素。
7. 从循环队列中删除一个元素时,其操作是先移动队首指针,后取出元素。
8. 带表头结点的空循环双向链表的长度等于0 。
二、判断正误(×)1. 线性表的每个结点只能是一个简单类型,而链表的每个结点可以是一个复杂类型。
(×)2. 在表结构中最常用的是线性表,栈和队列不太常用。
(√)3. 栈是一种对所有插入、删除操作限于在表的一端进行的线性表,是一种后进先出型结构。
(√)4. 对于不同的使用者,一个表结构既可以是栈,也可以是队列,也可以是线性表。
(×)5. 栈和链表是两种不同的数据结构。
(×)6. 栈和队列是一种非线性数据结构。
(√)7. 栈和队列的存储方式既可是顺序方式,也可是链接方式。
(√)8. 两个栈共享一片连续内存空间时,为提高内存利用率,减少溢出机会,应把两个栈的栈底分别设在这片内存空间的两端。
(×)9. 队是一种插入与删除操作分别在表的两端进行的线性表,是一种先进后出型结构。
(×)10. 一个栈的输入序列是12345,则栈的输出序列不可能是12345。
三、单项选择题( B )1. 栈中元素的进出原则是A.先进先出B.后进先出C.栈空则进D.栈满则出(C)2. 若已知一个栈的入栈序列是1,2,3,…,n,其输出序列为p1,p2,p3,…,pn,若p1=n,则pi为A.i B.n=i C.n-i+1 D.不确定(B)3. 判定一个栈ST(最多元素为m0)为空的条件是A.ST->top<>0 B.ST->top=0 C.ST->top<>m0 D.ST->top=m0(A)4. 判定一个队列QU(最多元素为m0)为满队列的条件是A.QU->rear -QU->front = = m0 B.QU->rear -QU->front -1= = m0C.QU->front = = QU->rear D.QU->front = = QU->rear+1( D )5.数组Q[n]用来表示一个循环队列,f为当前队列头元素的前一位置,r为队尾元素的位置,假定队列中元素的个数小于n,计算队列中元素的公式为(A)r-f; (B)(n+f-r)% n; (C)n+r-f; (D)(n+r-f)% n6. 设有4个数据元素a1、a2、a3和a4,对他们分别进行栈操作或队操作。
数据结构 自测题1-5答案
数据结构自测题答案(前五章)一、填空题1. 数据结构是一门研究非数值计算的程序设计问题中计算机的操作对象以及它们之间的关系和运算等的学科。
2. 数据结构被形式地定义为(D, S),其中D是数据元素的有限集合,S是D上关系的有限集合。
3. 数据结构按逻辑结构可分为两大类,它们分别是线性结构和非线性结构。
4. 线性结构中元素之间存在一对一关系,树形结构中元素之间存在一对多关系,图形结构中元素之间存在多对多关系。
5.在线性结构中,第一个结点没有前驱结点,其余每个结点有且只有1个前驱结点;最后一个结点没有后续结点,其余每个结点有且只有1个后续结点。
6. 一个算法的效率可分为时间效率和空间效率。
7. 线性表中结点的个数是有限的,结点间的关系是一对一的。
8. 向一个长度为n的向量的第i个元素(1≤i≤n+1)之前插入一个元素时,需向后移动n-i+1 个元素。
9. 向一个长度为n的向量中删除第i个元素(1≤i≤n)时,需向前移动n-i 个元素。
10. 在顺序表中访问任意一结点的时间复杂度均为O(1),因此,顺序表也称为随机存取的数据结构。
11. 顺序表中逻辑上相邻的元素的物理位置必定相邻。
单链表中逻辑上相邻的元素的物理位置不一定相邻。
12.在单链表中,除了首元结点外,任一结点的存储位置由其直接前驱结点的链域的值指示。
13.在n个结点的单链表中要删除已知结点*p,需找到它的前驱结点,其时间复杂度为O(n)。
14. 线性表、栈和队列都是线性结构,可以在线性表的任何位置插入和删除元素;对于栈只能在栈顶插入和删除元素;对于队列只能在队尾插入和队首删除元素。
15. 在具有n个单元的循环队列中,队满时共有n-1 个元素。
16. 不包含任何字符(长度为0)的串称为空串;由一个或多个空格(仅由空格符)组成的串称为空白串。
17. 设S=“A;/document/Mary.doc”,则strlen(s)= 20 , “/”的字符定位的位置为3。
数据结构 学习自测题-2
学习自测及答案1. 已知一维数组A采用顺序存储结构,每个元素占用4个存储单元,第9个元素的地址为144,则第一个元素的地址是()。
A 108B 180C 176D 1122.在长度为n的线性表中查找值为x的数据元素的时间复杂度为:()。
A O(0)B O(1)C O(n)D O(n2)3.在一个长度为n的顺序表的第i(1≤i≤n+1)个元素之前插入一个元素,需向后移动()个元素,删除第i(1≤i≤n)个元素时,需向前移动()个元素。
4.在单链表中,除了头结点以外,任一结点的存储位置由()指示。
5.当线性表采用顺序存储结构时,其主要特点是()。
6.在双链表中,每个结点设置了两个指针域,其中一个指向()结点,另一个指向()结点。
7.设A是一个线性表(a1, a2, …, an),采用顺序存储结构,则在等概率的前提下,平均每插入一个元素需要移动的元素个数为多少?若元素插在ai与ai+1之间(1≤i≤n)的概率为,则平均每插入一个元素所要移动的元素个数又是多少?8.线性表存放在整型数组A[arrsize]的前elenum 个单元中,且递增有序。
编写算法,将元素x插入到线性表的适当位置上,以保持线性表的有序性,并且分析算法的时间复杂度。
9. 已知单链表中各结点的元素值为整型且递增有序,设计算法删除链表中所有大于mink且小于maxk的所有元素,并释放被删结点的存储空间。
10.设单循环链表L1,对其遍历的结果是:x1, x2, x3,…, xn-1, xn。
请将该循环链表拆成两个单循环链表L1和L2,使得L1中含有原L1表中序号为奇数的结点且遍历结果为:x1, x3,… ;L2中含有原L1表中序号为偶数的结点且遍历结果为:… , x4, x2。
数据结构试卷,自测题
一.判断题1.堆排序是一种选择排序,堆实质上是一颗完全二叉树结点的层次序列。
………()2.串是多个字符组成的有限序列,其一般形式为S=“a1a2…….an”。
……………()3.二维数组的两种存储方式列序和行序。
………………………………………()4.数据结构是指相互之间存在一种或多种特定关系的数据元素的集合。
………()5.逻辑结构有线性结构,树形结构,图状结构三种。
…………………………()二.填空题1. 串的长度是指_____________________2. 串是一种特殊的线性表,其特殊性体现在3. 栈是___ __________的线性表,其运算遵循________ ________的原则。
4. 数组是一种______数据结构,数组中的元素属于同一数据类型,一维数组可以看成向量,多维数组是向量的_____。
5. 二叉树是有3个基本单元组成____、______、______6. 深度为k的二叉树最多有____个结点(k≥1)三.选择题1. 从逻辑上可以把数据结构分为()两大类。
A.动态结构、静态结构B.顺序结构、链式结构C.线性结构、非线性结构D.初等结构、构造型结构2. 连续储存设计时,储存单元的地址()A.一定连续B.一定不连续C.不一定连续D.部分连续,部分不连续3. 一个栈的输出序列为1,2,3,…….,n,若输出序列的第一个元素是n,输出第i(1<=i<=n)个元素是()A.不确定 B. n-i+1 C. i D. n-i4. 执行完下列语句段后,i值为:()。
int f(int x){return ((x>0) ? x* f(x-1):2); }int i;I = f(f(1));A . 2B . 4C . 8D . 无限递归5. 下面关于串的叙述中,哪一个是不正确的?()A.串是字符的有限序列B.空串即是空白串C.模式匹配是串的一种重要运算D.串既可以采用顺序存储,也可以采用链式存储6. 若串S=”abbdded”,其子串的数目是多少()A.8B.28C.9D.297.假定有K个关键字互为同义词,若用线性探测法吧这K个关键字存入散列表中,至少要进行多少次探测()A.K-1次 B. K次C.K+1次D.K(K+1)/21.8.下面四种排序方法中,不稳定的排序法是()。
数据结构自测题
一.绪论1.1 单项选择题1. 数据结构是一门研究非数值计算的程序设计问题中,数据元素的①、数据信息在计算机中的②以及一组相关的运算等的课程。
①A.操作对象B.计算方法C.逻辑结构D.数据映象②A.存储结构B.关系C.运算D.算法2. 数据结构DS(Data Struct)可以被形式地定义为DS=(D,R),其中D是①的有限集合,R是D上的②的有限集合。
①A.算法B.数据元素C.数据操作D.数据对象②A.操作B.映象C.存储D.关系3. 在数据结构中,从逻辑上可以把数据结构分成。
A.动态结构和静态结构B.紧凑结构和非紧凑结构C.线性结构和非线性结构D.内部结构和外部结构4. 算法分析的目的是①,算法分析的两个主要方面是②。
①A. 找出数据结构的合理性 B. 研究算法中的输入和输出的关系C. 分析算法的效率以求改进D. 分析算法的易懂性和文档性②A. 空间复杂性和时间复杂性 B. 正确性和简明性C. 可读性和文档性D. 数据复杂性和程序复杂性5. 计算机算法指的是①,它必具备输入、输出和②等五个特性。
① A. 计算方法 B. 排序方法C. 解决问题的有限运算序列D. 调度方法②A. 可行性、可移植性和可扩充性 B. 可行性、确定性和有穷性C. 确定性、有穷性和稳定性D. 易读性、稳定性和安全性1.2 填空题(将正确的答案填在相应的空中)1. 数据逻辑结构包括、和三种类型,树形结构和图形结构合称为。
2. 在线性结构中,第一个结点前驱结点,其余每个结点有且只有个前驱结点;最后一个结点后续结点,其余每个结点有且只有个后续结点。
3. 在树形结构中,树根结点没有结点,其余每个结点有且只有个直接前驱结点,叶子结点没有结点,其余每个结点的直接后续结点可以。
4. 在图形结构中,每个结点的前驱结点数和后续结点数可以。
5. 线性结构中元素之间存在关系,树形结构中元素之间存在关系,图形结构中元素之间存在关系。
6. 算法的五个重要特性是__ __ , __ __ , ___ _ , __ __ , _ ___。
十套数据结构试题及答案
数据构造试卷〔一〕一、单项选择题〔每题 2 分,共20分〕1.栈和队列的共同特点是( a )。
A.只允许在端点处插入和删除元素B.都是先进后出C.都是先进先出D.没有共同点2.用链接方式存储的队列,在进展插入运算时( d ).A. 仅修改头指针B. 头、尾指针都要修改C. 仅修改尾指针D.头、尾指针可能都要修改3.以下数据构造中哪一个是非线性构造?( d )A. 队列B. 栈C. 线性表D. 二叉树4.设有一个二维数组A[m][n],假设A[0][0]存放位置在644(10),A[2][2]存放位置在676(10),每个元素占一个空间,问A[3][3](10)存放在什么位置?脚注(10)表示用10进制表示。
cA.688 B.678 C.692 D.6965.树最适合用来表示( c )。
A.有序数据元素B.无序数据元素C.元素之间具有分支层次关系的数据D.元素之间无联系的数据6.二叉树的第k层的结点数最多为( d ).A.2k-1 B.2K+1 C.2K-1 D. 2k-17.假设有18个元素的有序表存放在一维数组A[19]中,第一个元素放A[1]中,现进展二分查找,那么查找A[3]的比拟序列的下标依次为( c d)A. 1,2,3B. 9,5,2,3C. 9,5,3D. 9,4,2,38.对n个记录的文件进展快速排序,所需要的辅助存储空间大致为 cA. O〔1〕B. O〔n〕C. O〔1og2n〕D. O〔n2〕9.对于线性表〔7,34,55,25,64,46,20,10〕进展散列存储时,假设选用H〔K〕=K %9作为散列函数,那么散列地址为1的元素有〔 c d〕个,A.1 B.2 C.3 D.410.设有6个结点的无向图,该图至少应有( a )条边才能确保是一个连通图。
二、填空题〔每空1分,共26分〕1.通常从四个方面评价算法的质量:____时间正确性_____、____占用内存_易读性____、____复杂度__强壮性___和_____准确度_ 高效率___。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
本科题单项选择题(每题2分,共30分)(注意:在本试题上直接答题无效,请将试题答案写在后面的答题纸上。
)1.算法的时间复杂度取决于()A.问题的规模 B. 待处理数据的初态 C. A和B2. 线性表采用链式地址时,其地址()A. 必须是连续的B. 一定是不连续的C. 部分地址必须是连续的D. 连续与否均可以3. 链表不具有的特点是()A.插入、删除不需要移动元素B.可随机访问任一元素C.不必事先估计存储空间D.所需空间与线性长度成正比4.有六个元素6,5,4,3,2,1 的顺序进栈,问下列哪一个不是合法的出栈序列?()A. 5 4 3 6 1 2B. 4 5 3 1 2 6C. 3 4 6 5 2 1D. 2 3 4 1 5 65. 最大容量为n的循环队列,队尾指针是rear,队头是front,则队空的条件是()。
A. (rear+1) MOD n=frontB. rear=frontC.rear+1=front D. (rear-l) MOD n=front6. 串是一种特殊的线性表,其特殊性体现在()A. 可以顺序存储B. 数组元素是一个字符C. 可以连续存储D. 数据元素可以是多个字符7. 设A是n*n的对称矩阵,将A的对角线及对角线上方的元素以列为主的次序存放在一维数组B[1..n(n+1)/2]中,对上述任一元素aij(1≤i,j≤n,且i≤j)在B中的位置为( )。
A. i(i-l)/2+jB. j(j-l)/2+iC. j(j-l)/2+i-1D. i(i-l)/2+j-18. 已知广义表: A=(a,b), B=(A,A), C=(a,(b,A),B), 求下列运算的结果:tail(head(tail(C))) =( )。
A.(a)B. AC. aD. (b)E. bF. (A)9. 已知某二叉树的后序遍历序列是dabec, 中序遍历序列是debac , 它的前序遍历是()。
A.acbed B.decab C.deabc D.cedba10. 一棵具有n个结点的完全二叉树的树高度(深度)是()A.⎣logn⎦+1 B.logn+1 C.⎣logn⎦D.logn-111. 哈希查找中k个关键字具有同一哈希值,若用线性探测法将这k个关键字对应的记录存入哈希表中,至少要进行( )次探测。
A.k B. k+1 C. k(k+1)/2 D.1+k(k+1)/212. 要连通具有n个顶点的有向图,至少需要()条边。
A.n-l B.n C.n+l D.2n13. 用DFS遍历一个无环有向图,并在DFS算法退栈返回时打印相应的顶点,则输出的顶点序列是( )。
A.逆拓扑有序B.拓扑有序C.无序的14. 具有12个关键字的有序表,折半查找的平均查找长度()A. 3.1B. 4C. 2.5D. 515. 二叉查找树的查找效率与二叉树的树型有关, 在( )时其查找效率最低。
A. 结点太多B. 完全二叉树C. 呈单枝树D. 结点太复杂。
判断题(正确打√,错误打×,每题1分,共10分)(注意:在本试题上直接答题无效,请将试题答案写在后面的答题纸上。
)1.算法的优劣与算法描述语言无关,但与所用计算机有关。
( )2. 顺序存储方式的优点是存储密度大,且插入、删除运算效率高。
( )3. 栈和队列都是限制存取点的线性结构。
()4. 稀疏矩阵压缩存储后,必会失去随机存取功能。
()5. 一棵有n个结点的二叉树,从上到下,从左到右用自然数依次给予编号,则编号为i的结点的左儿子的编号为2i(2i< n),右儿子是2i+1(2i+1<n)。
()6. 在图G的最小生成树G1中,可能会有某条边的权值超过未选边的权值.()7.对无序表用二分法查找比顺序查找快()8. 快速排序总比简单排序快。
()9. 在查找树(二叉树排序树)中插入一个新结点,总是插入到叶结点下面。
( )10. 在AOE图中,关键路径上某个活动的时间缩短,整个工程的时间也就必定缩短。
()三、阅读下列程序,说明完成的功能(共10分,每题5分) (注意:在本试题上直接答题无效,请将试题答案写在后面的答题纸上。
)1. void exam1(SeqStack S, int m){ SeqStack T; int i;IniStack(T);while(!Stackempty (S))if ((i=pop(S))!=m) push(T,i);while (!Stackempty(T)){ i=pop(T); push(S,i); }} //exam1LinkList exam2(LikeList l){ //L是无头结点的的单链表ListNode *P,*Q;if (L && L->next){ Q=L; L=L->next; P=L;while ( P->next ) P=P->next;P->next=Q; Q->next=NULL;}//ifreturn L;}//exam2四、简答题(共22分) (注意:在本试题上直接答题无效,请将试题答案写在后面的答题纸上。
)1. 已知模式串pat=’ADABBADADA’,写出该模式串的next函数值;(4分)2. 试叙述一维数组与有序表的异同。
(3分)3. 将下列树转换成为二叉树(只要求给出转换结果)(4分)4. 给定权值2,3,4,6,8,10,12,构造相应的哈夫曼树,并计算其带权路径长度。
(4分)5. 有一随机数组(25,84,21,46,13,27,68,35,20),现采用某种方法对它们进行排序,其每趟排序结果如下, 则该排序方法是什么排序方法? (3分)初始:25,84,21,46,13,27,68,35,20第一趟:20,13,21,25,46,27,68,35,84第二趟:13,20,21,25,35,27,46,68,84第三趟:13,20,21,25,27,35,46,68,846.已知某图的邻接表存储结构如下图所示:(4分)1). 写出从1号顶点出发的深度优先访问顺序;2). 画出深度优先生成树;五、算法设计题(共28分)1. 编写算法实现对给定的二叉树是否为二叉排序树的判别。
设二叉树以二叉链表存储表示。
(要求写出二叉链表的类型定义)。
(10分)2.设一图G以邻接表作为存储结构,请写出广度优先遍历图G的算法。
(10分)3.请写出直接选择排序的算法,并分析算法的时间复杂度和空间复杂度。
是否稳定的排序?如果是不稳定的,试举出一例。
(8分)专科题一、选择题(每小题2分,共20分)1. 以下四类基本的逻辑结构反映了四类基本的数据组织形式,解释错误的是( )A、集合中任何两个结点之间都有逻辑关系但组织形式松散B、线性结构中结点按逻辑关系依次排列形成一条"锁链"C、树形结构具有分支、层次特性,其形态有点像自然界中的树D、图状结构中的各个结点按逻辑关系互相缠绕,任何两个结点都可以邻接2. 若结点的存储地址与其关键字之间存在某种映射关系,则称这种存储结构为( )A、顺序存储结构B、链式存储结构C、索引存储结构D、散列存储结构3. 在长度为n的顺序表的第i (1≤i≤n+1)个位置上插入一个元素,元素的移动次数为( )A、n-i+1B、n-iC、iD、i-14. 对于只在表的首、尾两端进行插入操作的线性表,宜采用的存储结构为( )A、顺序表B、用头指针表示的单循环链表C、用尾指针表示的单循环链表D、单链表5. 一个栈的入栈序列是a,b,c,d,e,则栈的不可能的输出序列是()A、e d c b aB、d e c b aC、d c e a bD、a b c d e6. 已知图1如右所示,若从顶点A出发按深度优先搜索进行遍历,则可能得到的顶点序列为()A、A,B,E,C,D,FB、A,C,F,E,B,DC、A,E,B,C,F,DD、A,E,D,F,C,B7. n个顶点的有向图中含有向边的数目最多为( )A、n-1B、nC、n(n-1)/2D、8. 若一个栈的输入顺序是1,2,…,n,输出序列的第一个元素是n,则第i(1≤i≤n)A、n-iB、n-i-1C、i+1D、n-i+19. 已给图2,()是该图的正确的拓扑排序序列A、1,2,3,4,5B、1,3,2,4,5C、1,2,4,3,5D、1,2,3,5,410. 为查找某一特定单词在文本中出现的位置,可应用的串运算是( )A、插入B、删除C、串联接D、子串定位图2二、填空题(每小题2分,共30分)存储结构是逻辑结构的__________实现。
若一个算法中的语句频度之和为T(n)=n+4nlogn,则算法的时间复杂度为________。
3. 数组A[1..10,-2..6,2..8]以行优先顺序存储,设基地址为100,每个元素占3个存储单元,则元素A[5,0,7]的存储地址是。
4. 在无向图的邻接矩阵A中,若A[i,j]等于1,则A[j,i]等于________。
对带有头结点的链队列lq,判定队列中只有一个数据元素的条件是___________。
设数组data[0..m]作为循环队列sq的存储空间,front为队头指针,rear为队尾指针,则执行出队操作后其头指针front的值为。
设栈S和队列Q的初始状态为空,元素e1,e2,e3,e4,e5和e6依次通过栈S,一个元素出栈后即进队列Q,若6个元素出队的序列是e3,e5,e4,e6,e2,e1,则栈S的容量至少应该是。
设有顺序栈s[0..m-1],若栈底设在下标最大的一端,则栈满的条件是(设栈顶指针为top,指向栈顶元素的位置)。
有一个10阶对称矩阵A,采用压缩存储方式,以行序为主序存储,A[1,1]为第一元素,其存储地址为1,每个元素占一个地址空间,则A[7,5]的地址为。
在序列(2,5,8,11,15,16,22,24,27,35,40)中采用折半查找,查找元素11,需进行次元素之间的比较。
深度为h的完全二叉树至少有_________个结点。
在对一组记录(18,6,27,12,52,15,47,29)进行直接插入排序时,当把第6个记录15插入到有序表时,为寻找插入位置需比较次。
在直接插入排序和快速排序中,若初始数据基本有序,则选用_________;在冒泡排序和堆排序中,若要求数据的稳定性,则选用_________。
广义表运算式TAIL(((a,b),(c,d))) 的运算结果为。
一组记录的关键字为(42,59,36,28,10,84),则利用快速排序的方法,以第一个记录为基准得到的一次划分结果为。
三.应用题(每小题5分,共35分)设有序列(45,24,53,12,28,90),请构成一棵二叉排序树,并求其查找成功时的平均查找长度。