数据结构自测试题二
数据结构自测题及答案

数据结构自测题及答案**数据结构自测题及答案**一、选择题(每题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;}```以上就是自测题及答案的全部内容。
数据结构考试题2

else
break;
}
while (p!=NULL && q!=NULL && p->data==q->data)
{//当两者值相等时同步后移
p=p->next;
q=q->next;
}
if (q==NULL)//当B中节点比较完毕返回1
return 1;
else//否则返回0
return 0;
三
1.设A=(a1,a2,…,an),B=(b1,b2,…,bm)是两个递增有序的线性表(其中n、m均大于1),且所有数据元素均不相同。假设A、B均采用带头节点的单链表存放,设计一个尽可能高效的算法判断B是否为A的一个子序列,并分析你设计的算法的时间复杂度和空间复杂度。(15分)
2.假设二叉树b采用二叉链存储结构存储,试设计一个算法,输出该二叉树中从根节点出发的第一条最长的路径长度,并输出此路径上各节点的值。并分析你设计的算法的时间复杂度和空间复杂度。(15分)
{//pathlen和maxpathlen的初值均为0
int i;
if (b==NULL)
{if (pathlen>maxpathlen)//通过比较求最长路径
{for (i=pathlen-1;i>=0;i--)
maxpath[i]=path[i];
maxpathlen=pathlen;
}
}
else
}
}
A. O(n)B. O( )
C. O(nlog2n)D. O(log2n)
3.在一个双链表中,删除p所指节点(非首、尾节点)的操作是。
A.p->prior->next=p->next;p->next->prior=p->prior;
数据结构试卷2(含答案)

数据结构期末试卷出卷人:09数煤(1)班1~9号一、判断题(5分)1、线性表是一种随机存取结构-------------------------------------------------------------------()2、循环链表的特点是最后一个结点的指针域为NULL--------------------------------------()3. 下列不等式是否正确:O(n)<O(nlog2n)<O(n2)<O(n3)<O(nk)<O(2n) ----------------------------------------------------()4. 数据元素之间的关系在计算机中有两种不同的表示方法:顺序映像和非顺序映像,分别对应两种不同的存储结构:链式存储结构和顺序存储结构---------------------------------()5. 抽象数据类型不可通过固有数据类型来表现和实现--------------------------------------()二、选择题(15分)1、对顺序存储的线性表,设其长度为n,在任何位置上插入或删除操作都是等概率的。
插入一个元素时平均要移动表中的()个元素。
(A) n/2 (B) (n+1)/2 (C) (n -1)/2 (D) n2、一个栈的入栈序列是1,2,3,4,5,则栈的不可能的输出序列是()A 3,5,4,2,1B 3,2,4,5,1C 1,2,3,4,5D 5,4,3,1,23、已知广义表LS=((a,b,c),(d,e,f)),运用head和tail函数取出LS中原子e的运算是( )。
A. head(tail(LS))B. tail(head(LS))C. head(tail(head(tail(LS)))D. head(tail(tail(head(LS))))4、对稀疏矩阵进行压缩存储目的是()。
数据结构试题2

计算机专业数据结构试题一、选择题(每小题1分,共10分)1、在一个长度为n的顺序表的表尾插入一个新元素的渐进时间复杂度为()A.O (n) B.O (1) C.O (n2 ) D.O (log2 n)2、设单链表中结点的结构为(data , link)。
已知指针q所指结点是指针p所指结事业的直接前驱,若在*q与*p之间插入结点*s,则应执行下列哪一个操作?()A.s ->link= p->link ; p->link=s B.q->link=s ;s->link=pC.p->link=s->link ;s->link=p D.p->link=s ;s->link=q3、若让元素1,2,3依次进栈,则出栈次序不可能出现()种情况。
A.3,2,1 B.2,1,3 C.3,1,2 D.1,3,24、一个递归的定义可以用递归过程求解,也可以用非递归过程求解,但单从运行时间来看,通常递归过程比非递归过程()A.较快B.较慢C.相同5、树中所有结点的度等于所有结点数加()A.0 B.1 C.-1 D.26、在一棵具有n个结点的二叉树中,所有结点的空子树个数等于()A.n B.n-1 C.n+1 D.2*n7、对长度为n的有序单链表,若搜索每个元素的概率相等,则顺序搜索到表中任一元素的平均搜索长度为()A.n/2 B.(n+1)/2 C.(n –1)/2 D.n/48、在无向图中定义顶点V i与V j之间的路径为从V i到达V j的一个()A.顶点序列B.边序列C.权值总和D.边的条数9、如果只想得到1024个元素组成的序列中的前5个最小元素,那么用()方法最快。
A.起泡排序B.快速排序C.堆排序D.直接选择排序10、设有一个含200个表项的散列表,用线性探查法解决冲突,按关键码查询时找到一个表项的平均探查次数不超过1.5,则散列表项应能够至少容纳()个表项。
数据结构试题及答案(2)

数据结构试题一、单选题(每题 2 分,共20分)1.1. 对一个算法的评价,不包括如下( B )方面的内容。
A.健壮性和可读性B.并行性 C.正确性 D.时空复杂度2.2. 在带有头结点的单链表HL中,要向表头插入一个由指针p指向的结点,则执行( A )。
A. p->next=HL->next; HL->next=p;B. p->next=HL; HL=p;C. p->next=HL; p=HL;D. HL=p; p->next=HL;3.3. 对线性表,在下列哪种情况下应当采用链表表示?( B )A.经常需要随机地存取元素B.经常需要进行插入和删除操作C.表中元素需要占据一片连续的存储空间D.表中元素的个数不变4.4. 一个栈的输入序列为 1 2 3,则下列序列中不可能是栈的输出序列的是( C )A. 2 3 1B. 3 2 1C. 3 1 2D. 1 2 35.5. AOV网是一种( D )。
A.有向图 B.无向图 C.无向无环图D.有向无环图6.6. 采用开放定址法处理散列表的冲突时,其平均查找长度( B )。
A.低于链接法处理冲突 B. 高于链接法处理冲突C.与链接法处理冲突相同 D.高于二分查找7.7. 若需要利用形参直接访问实参时,应将形参变量说明为( D )参数。
A.值 B.函数 C.指针 D.引用8.8. 在稀疏矩阵的带行指针向量的链接存储中,每个单链表中的结点都具有相同的( A )。
A.行号B.列号 C.元素值 D.非零元素个数9.9. 快速排序在最坏情况下的时间复杂度为( D )。
A.O(log2n) B.O(nlog2n) C.O(n) D.O(n2)10.10. 从二叉搜索树中查找一个元素时,其时间复杂度大致为( C )。
A. O(n)B. O(1)C. O(log2n) D. O(n2)二、运算题(每题 6 分,共24分)1. 1. 数据结构是指数据及其相互之间的_对应关系(联系)。
数据结构(第二版) 模拟试题自测卷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 分,共 10 分) 1.数据的存储结构是数据的逻辑结构的存储映象,不仅要存储数据元素的值,还要存储元素之间的相互关系。
2.用顺序表来存储线性表时,不需要另外开辟空间来保存数据元素之间的相互关系。
3.完全二叉树的叶子结点只能出现在最后一层上。
4.折半查找方法要求待查表必须是有序的顺序表。
5.在有向图 G 中, V 2 , V 1 和 V 1 , V 2 是两条不同的边。
6.图的最小生成树是唯一的。
7.从循环单链表的某一结点出发,只能找到它的后继结点,不能找到它的前趋结点。
8.在单链表中,头结点是必不可少的。
9.对快速排序来说,初始序列为正序和反序,都是最坏情况。
10.广义表是特殊的线性表。
二、选择(每题 1 分,共 15 分) 1.设栈 S 和队列 Q 的初始状态均为空,元素 abcdefg 依次进入栈 S 。
若每个元素出栈后立即进入队列 Q ,且 7 个元素出队的顺序是bdcfeag ,则栈 S 的容量至少是()。
A.1 B.2 C.3 D.4 2.下列线索二叉树1/ 8中(用虚线表示线索),符合后序线索树定义的是( )。
3.已知广义表 A= (( a,b ) ,(c,d) ) , 则 head(A) 等于 ( )。
A.(a,b) B.((a,b)) C.a,b D.a 4.设字符串s1=‘ABCDEFG’,s2=‘PQRST’, 则运算s=strcat(strsub(s1,2,strlen(s2)),strsub (s1,strlen(s2),2))后结果为()。
A.BCQR B.BCDEF C.BCDEFG D.BCDEFEF 5.具有 8 个顶点的连通图的深度优先生成树,其边数为()。
A.8 B.9 C.7 D.6 6.算法分析的两个主要方面是()。
A.空间复杂性和时间复杂性 B.正确性和简明性 C.可读性和文档性 D.数据复杂性和程序复杂性 7.下列四种排序中()的空间复杂度最大。
数据结构试卷(二)及答案

数据结构试卷(二)一、选择题(24分)1.下面关于线性表的叙述错误的是()。
(A) 线性表采用顺序存储必须占用一片连续的存储空间(B) 线性表采用链式存储不必占用一片连续的存储空间(C) 线性表采用链式存储便于插入和删除操作的实现(D) 线性表采用顺序存储便于插入和删除操作的实现2.设哈夫曼树中的叶子结点总数为m,若用二叉链表作为存储结构,则该哈夫曼树中总共有()个空指针域。
(A) 2m-1 (B) 2m (C) 2m+1 (D) 4m3.设顺序循环队列Q[0:M-1]的头指针和尾指针分别为F和R,头指针F总是指向队头元素的前一位置,尾指针R总是指向队尾元素的当前位置,则该循环队列中的元素个数为()。
(A) R-F (B) F-R (C) (R-F+M)%M (D) (F-R+M)%M4.设某棵二叉树的中序遍历序列为ABCD,前序遍历序列为CABD,则后序遍历该二叉树得到序列为()。
(A) BADC (B) BCDA (C) CDAB (D) CBDA5.设某完全无向图中有n个顶点,则该完全无向图中有()条边。
(A) n(n-1)/2 (B) n(n-1) (C) n2(D) n2-16.设某棵二叉树中有2000个结点,则该二叉树的最小高度为()。
(A) 9 (B) 10 (C) 11 (D) 127.设某有向图中有n个顶点,则该有向图对应的邻接表中有()个表头结点。
(A) n-1 (B) n (C) n+1 (D) 2n-18.设一组初始记录关键字序列(5,2,6,3,8),以第一个记录关键字5为基准进行一趟快速排序的结果为()。
(A) 2,3,5,8,6 (B) 3,2,5,8,6(C) 3,2,5,6,8 (D) 2,3,6,5,8二、填空题(24分)1.为了能有效地应用HASH查找技术,必须解决的两个问题是____________________和__________________________。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数据结构自测试题二
一、判断题(每题2分,共12分)
1、健壮的算法不会因非法的输入数据而出现莫名其妙的状态。
()
2、数据的物理结构是指数据在计算机内的实际存储形式。
()
3、队列是一种插入与删除操作都在表的同一端进行的线性表。
()
4、从AOE网的开始点到完成点之间弧的数目最多的简单路径称为关键路径。
()
5、内部排序要求数据一定要以顺序方式存储。
()
6、N个顶点的连通图至少有N-1条边。
()
二、单选题(每题2分,共20分)
1、一个算法应该是()
1.A、问题求解步骤的描述B、程序C、要满足五个基本特性D、A和B
2、以下数据结构中,()是非线性数据结构
1.A、树B、字符串C、队D、栈
3、完成在双循环链表结点p之后插入s的操作是()
1.A、p->next=s; s->prior=p; p->next->prior=s; s->next=p->next;
2.B、p->next->prior=s; p->next=s; s->prior=p; s->next=p->next;
3.C、s->prior=p; s->next=p->next; p->next=s; p->next->prior=s;
4.D、s->prior=p; s->next=p->next; p->next->prior=s; p->next=s; 4、对于顺序存储的线性表,访问结点和增加、删除结点的时间复杂度为()。
1.A、O(n) O(n) B、O(n) O(1) C、O(1) O(n) D、O(1) O(1) 5、栈和队列都是()
1.A、顺序存储的线性结构B、链式存储的非线性结构
2.C、限制存取点的线性结构D、限制存取点的非线性结构
6、串的长度是指()
1.A、串中所含不同字母的个数B、串中所含字符的个数
2.C、串中所含不同字符的个数D、串中所含非空格字符的个数
7、设给定权值总数有n 个,其哈夫曼树的结点总数为()
1.A、不确定B、2n C、2n+1 D、2n-1
8、下列哪一种图的邻接矩阵是对称矩阵?()
1.A、有向图B、无向图C、AOV网D、AOE网
9、当采用分块查找时,数据的组织方式为()
1.A、数据分成若干块,每块内数据有序
2.B、数据分成若干块,每块内数据不必有序,但块间必须有序,每块内最大(或最
小)的数据组成索引块
3.C、数据分成若干块,每块内数据有序,每块内最大(或最小)的数据组成索引块
4.D、数据分成若干块,每块(除最后一块外)中数据个数需相同
10、一组记录的关键码为(46,79,56,38,40,84),则利用快速排序的方法,以第一个记录为基准得到的一次划分结果为()。
1.A、(38,40,46,56,79,84) B、(40,38,46,79,56,84)
2.C、(40,38,46,56,79,84) D、(40,38,46,84,56,79)
三、填空题(每题3分,共18分)
1、两个串相等的充分必要条件是。
2、for (j=1; j<=n; j*=2); 的时间复杂度为。
3、设T是一棵二叉树,除叶子结点外,其它结点的度数皆为2,若T中有6个叶结点,则T树的最大深度为,最小可能深度。
4、在线性结构中,除第一个结点外,每个结点都有一个结点,除最后一个结点外,每个结点都有一个结点。
5、有3个元素1,2,3顺序(依次)进栈,则不可能出现的出栈序列是。
6、串aaba的next值为。
四、应用题(每题10分,共50分)
1、已知一棵二叉树的先序遍历序列为:A、B、C、D、G、E、F,中序遍历序列为:C、B、
D、G、A、F、E,请画出这棵二叉树(要求说明生成原理),并求出这棵二叉树的后序遍历序列。
2、用2-路归并排序对序列25, 89, 50, 27, 43, 12, 35, 33进行升序排序,写出每一趟的排序结果。
3、某无向网的邻接表示意如下,其中i: ->j, w表示弧<i, j>的权为w。
,⑴、请画出该无向网;⑵、请用克鲁斯卡尔算法(Kruskal)或者普里姆算法(Prim)(从结点4开始)求最小生成树,并输出树的生长过程。
1.1: -> 2,3 -> 3,5 -> 5,7^
2.2: -> 1,3 -> 3,2 -> 5,4^
3.3: -> 1,5 -> 2,2 -> 4,8^
4.4: -> 3,8 -> 5,6^
5.5: -> 1,7 -> 2,4 -> 4,6^
4、假设关键字输入顺序为33, 43, 16, 9, 25, 98, 27, 86, 94, 37, 78,已知散列函数为:H(Key)=Key%11。
⑴、用拉链法解决冲突,请画出插入所有关键字后的链表结构(假设链表头插入);⑵、假设每个关键字的查找概率相同,请计算该表查找成功的平均查找长度。
5、画出在初始为空的二叉排序树中依次插入70, 17, 12, 77, 89, 75, 30, 19, 18时该树的生长全过程;请画出在该二叉排序树中删除节点70后的处理结果(请说明删除结点操作的原理)。
五、附加题(每题15分,共30分)
1、假设单链表的结点结构为
1.typedef struct Node {
int data;
struct Node *next;
2.} Node;
现有两个按结点数据值(data)递增有序排列的单链表A和单链表B,请编写算法,将单链表A与单链表B合并,生成单链表C,使单链表C中的结点,按数据值(data)递减有序排列。
(要求利用表A和表B中的结点空间构造表C,即不能申请新结点)。
2、一棵二叉树以二叉链表的形式存储,现已知该二叉树的根结点的地址为root,请定义二叉链表的结构,并写一个函数,求出该二叉树中结点的个数。