数据结构自测试题二
数据结构自测题及答案
![数据结构自测题及答案](https://img.taocdn.com/s3/m/82692a7d326c1eb91a37f111f18583d049640f0b.png)
数据结构自测题及答案**数据结构自测题及答案**一、选择题(每题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
![数据结构考试题2](https://img.taocdn.com/s3/m/421047d702020740bf1e9b0d.png)
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(含答案)
![数据结构试卷2(含答案)](https://img.taocdn.com/s3/m/2ca19ee0941ea76e58fa0475.png)
数据结构期末试卷出卷人: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
![数据结构试题2](https://img.taocdn.com/s3/m/315be50d4a7302768e9939a9.png)
计算机专业数据结构试题一、选择题(每小题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)](https://img.taocdn.com/s3/m/5875cf53caaedd3382c4d320.png)
数据结构试题一、单选题(每题 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
![数据结构(第二版) 模拟试题自测卷AB卷带答案3](https://img.taocdn.com/s3/m/fcd4818cd5d8d15abe23482fb4daa58da0111cb3.png)
试卷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时,经过( )次比较后查找成功。
数据结构-试卷二及答案
![数据结构-试卷二及答案](https://img.taocdn.com/s3/m/fff42eb177a20029bd64783e0912a21614797f89.png)
数据结构-试卷二及答案一、判断(每小题 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.下列四种排序中()的空间复杂度最大。
数据结构试卷(二)及答案
![数据结构试卷(二)及答案](https://img.taocdn.com/s3/m/0cc319ca0975f46527d3e178.png)
数据结构试卷(二)一、选择题(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查找技术,必须解决的两个问题是____________________和__________________________。
数据结构模拟试题二及答案
![数据结构模拟试题二及答案](https://img.taocdn.com/s3/m/3ca13b2a915f804d2b16c163.png)
六.算法设计题
1.Struct node{
int data;
node* next;
}
typedef node* pointer;
pointer head;
voiddel(){
pointer p,q,r,s;
q=head; p=q->next;
数据结构模拟题二参考答案
一.判断题
1、× 2、× 3、√ 4、× 5、√ 6、√ 7、×.8、× 9、√ 10、× 11、×12、× 13、√ 14、×.15、×
二.填空题
1.数组 2.给f和r赋同一个值x,0≤x≤100 3.前者没有指定存储方法,后者指定存储方法 4.n ┏log2(n+1)┐ 5.双亲数组 孩子链表 左孩子和右兄弟链表 6.n 7. 57
7.若某棵二叉树结点的后序序列和层次序列正好相反,则该二叉树_____________。
A.每个结点都没有右孩子B.不存在度为2的结点C.每个结点都没有左孩子D.不存在
8.对于一棵具有n个结点,度为3的树来说,树的高度至少是____________。
A.┏log32n┓B.┏log3(3n-1)┓C.┏log3(3n+1)┓D.┏log3(2n+1)┓
13.对n个元素执行简单选择排序,排序码的比较次数总是n(n-1)/2次。
14.物理记录的大小与逻辑记录的大小成正比。
15.对索引文件,索引表是建立在内存的,数据区是建立在外存的。
二.填空题(每空1分,共15分)
1.在程序中,描述顺序表的存储空间一般用________变量。
2.若用Q[0]~Q[100]作为循环顺序队列的存储空间,用“队首指针f的值等于队尾指针r的值”作为队空的标志,则创建一个空队列所要执行的操作是___________。
数据结构样卷二参考答案
![数据结构样卷二参考答案](https://img.taocdn.com/s3/m/433158250066f5335a8121f6.png)
样卷二参考答案:一简答题1.算法是解决特定问题的操作序列,可以用多种方式描述。
程序是算法在计算机中的实现,与具体的计算机语言有关。
2.主要与哈希函数、装填因子α有关。
如果用哈希函数计算的地址分布均匀,则冲突的可能性较小,如果装填因子α较小,则哈希表较稀疏,发生冲突的可能性较小。
3.图中结点可能有多个前驱,设置访问标志数组主要是为了避免重复访问同一个结点。
4.头指针指向头结点,头结点的后继域指向首元素结点。
5.当队尾到达数组最后一个单元时,就认为队满,但此时数组前面可能还有空单元,因此叫假溢出。
解决的方法是采用循环队列,即令最后一个单元的后继是第一个单元。
二判断题1.(√) 2.(×)3.(×)4.(√) 5.(×)6.(√) 7.(×) 8.(√) 9.(×) 10.(×)三单项选择题1. D 2.B 3.C 4. C 5. B 6. A 7.C 8.D 9. C 10.C 四填空题1. high low low high2. S->next=R->next ; R->next=S ;3.时间空间4. A[2, 3]5. 2h-1五构造题1.(4分)2.(6分)ASL= ( 1×4 + 2×2 + 3 ) / 7 = 11 / 7succ3.(6分)4.(4分)已知权值集合为:{ 5,7,2,3,6,9 },要求给出哈夫曼树,并计算其带权路径长度WPL。
WPL = 2×( 9 + 6 + 7 ) + 3×5 + 4×( 2 + 3 ) = 79六算法分析题解:(1)在二叉排序树中插入关键字为K的结点(2) h = log2 ( n+1 ) 或 h = [ log2n ] + 1 (方括号表示向下取整)(3)O ( log2 ( n+1 ) ) 或 O ( log2n )七算法设计题略。
数据结构与算法单元测试题2及答案
![数据结构与算法单元测试题2及答案](https://img.taocdn.com/s3/m/a238eb1a302b3169a45177232f60ddccdb38e665.png)
一、单选题1、若串S= 'software',其前缀真子串的数目是()。
A.9B.8C.7D.10正确答案:C2、两个串相等的充要条件是()。
A.两个字符串的长度相等且对应位置上的字符也相等B.两个字符串的长度相等C.两个字符串中对应位置上的字符相等D.两个字符串存储形式相同正确答案:A3、函数strcmp('stcabuc','stbabuc')的返回值是()。
A.1B.-1C.0D.2正确答案:A4、StrIndex (‘DATASTRUCTURE',1,‘STR')= ()。
A.9B.5C.3D.7正确答案:B5、设正文串长度为n,模式串长度为m,则模式匹配的KMP算法的时间复杂度为()。
A.O(n)B.O(m)C.O(m+n)D.O(m*n)正确答案:C6、设S="",则LenStr(S)=()。
A.1B.2C.3D.0正确答案:D7、设目标串T="aabaababaabaa",模式P="abab",朴素匹配算法的外层循环进行了( )次。
A.5B.9C.4D.1正确答案:A8、若串S='SOFT',其子串的数目最多是()。
A.9B.12C.10D.11正确答案:D9、设串S1='ABCDEFG',S2='PQRST' ,则ConcatStr(SubStr(S1,2,LenStr(S2)),SubStr(S1,LenStr(S2),2))的结果串为( )。
A.'BCPQRST'B.'BCDEFEF'C.'BCDEF'D.'BCDEFG'正确答案:B10、某串的长度小于一个常数,则采用()存储方式最节省空间。
A.堆结构B.顺序C.链式D.无法确定正确答案:B11、二维数组A的每个元素都是6个字符组成的串,行下标i的范围从0到8,列下标j的范围从1到10,则如果A按行存放元素A[8][5]的起始地址与A按列存放时元素()的起始地址一致。
(完整word版)数据结构试题试卷二含答案
![(完整word版)数据结构试题试卷二含答案](https://img.taocdn.com/s3/m/8a96f000aeaad1f347933f36.png)
模拟试题二模拟试题二一、选择题(28分)1.设一数列的顺序为l,2,3,4,5,通过栈结构不可能排成的顺序数列为( )。
A)3,2,5,4,l B)1,5,4,2,3C)2,4,3,5,l D)4,5,3,2,l2。
二叉树的第3层最少有()个结点。
A)0 B)1 C)2 D)33。
—个n个顶点的连通无向图,其边的个数至少为( )。
A) n-l B)n C)n+l D)nlogn4。
下列排序方法中,( )的比较次数与记录的初始排列状态无关。
A)直接插入排序 B)起泡排序C)快速排序 D)直接选择排序5.-棵哈夫曼树总共有II个结点,则叶子结点有( )个。
A)5 B)6 C)7 D)96.已知某算法的执行时间为(n+n2)+log2(n+2),n为问题规模,则该算法的时间复杂度是( )。
A)O(n)B)O(n2) C)O(log2n)D)O(nlog2n)7。
如果一棵树有10个叶子结点,则该树总共至少有( )个结点。
A)lO B)11 C)19 D) 218。
—个100×100的三角矩阵a采用行优先压缩存储后,如果首元素a[0][0]是第一个元素,那么a[4] [2]是第( )个元素。
A)13 B) 401 C) 402 D)4039.有一棵二叉树如题图1,该树是()。
A)二叉平衡树B)二叉排序树C)堆的形状D)以上都不是10。
对于含有n个顶点e条边的无向连通图,利用Prim算法生成最小代价生成树,其时间复杂度为(),利用Kruska算法的时间复杂度为().A)O(log2n) B)0(n2) C)O(ne) D)O(elog2ne)11.具有n个顶点的完全有向图的边数为( ).A)n(n—l)/2 B)n(n-l) C) n2 D)n2—112。
设有100个元素,用折半查找时,最大比较次数为(),最小比较次数为()。
A)25 B)7 C) 10 D)l13。
在内部排序中,排序时不稳定的有().A)插入排序B)冒泡排序C)快速排序D)归并排序14.串是一种特殊的线性表,其特殊性体现在()。
数据结构试题2(含答案)
![数据结构试题2(含答案)](https://img.taocdn.com/s3/m/3fc1a87e49d7c1c708a1284ac850ad02de8007ec.png)
期末样卷参考答案期末样卷参考答案一.是非题(每题2分共20分)分)1. 1. 线性表的链式存储结构优于顺序存储结构。
线性表的链式存储结构优于顺序存储结构。
线性表的链式存储结构优于顺序存储结构。
F2. 2. 栈和队列也是线性表。
如果需要,可对它们中的任一元素进行操作。
栈和队列也是线性表。
如果需要,可对它们中的任一元素进行操作。
F3. 字符串是数据对象特定的线性表。
T4. 在单链表P 指针所指结点之后插入S 结点的操作是:P->next= S ; S-> next = P->next; F 5. 一个无向图的连通分量是其极大的连通子图。
T6. 邻接表可以表示有向图,也可以表示无向图。
T7. 假设B 是一棵树,B ′是对应的二叉树。
则B 的后根遍历相当于B ′的中序遍历。
T 8. 通常,二叉树的第i 层上有2i-1个结点。
F9. 对于一棵m 阶的B -树,树中每个结点至多有m 个关键字。
除根之外的所有非终端结点至少有┌m/2┐个关键字。
F10.对于任何待排序序列来说,快速排序均快于起泡排序。
F 二.选择题(每题2分共28分) 1. 在下列排序方法中,在下列排序方法中,( c )方法平均时间复杂度为0(nlogn)0(nlogn),最坏情况下时间复,最坏情况下时间复杂度为0(n 2);( d )方法所有情况下时间复杂度均为0(nlogn)0(nlogn)。
a. a. 插入排序插入排序插入排序b. b. b. 希尔排序希尔排序希尔排序c. c. c. 快速排序快速排序快速排序d. d. d. 堆排序堆排序堆排序2. 2. 在有在有n 个结点的二叉树的二叉链表表示中,空指针数为(个结点的二叉树的二叉链表表示中,空指针数为( b )。
a. a.不定不定不定 b.n+1 c.n d.n-1 b.n+1 c.n d.n-13. 3. 下列二叉树中,下列二叉树中,( a )可用于实现符号不等长高效编码。
数据结构单元测验2(包含答案与讲解).docx
![数据结构单元测验2(包含答案与讲解).docx](https://img.taocdn.com/s3/m/56ed9020aa00b52acec7ca0c.png)
《数据结构》小测验二(2008-2009学年第一学期》一.判断题(用x表示错,用丁表示对)(每题1分,共10分)1.线性表的每个结点只能是一个简单类型,而链表的每个结点可以是一个复杂类型。
(X)错,线性表是逻辑结构概念,可以顺序存储或链式存储,与元素数据类型无关。
2•在表结构中最常用的是线性表,栈和队列不太常用。
(X)错,不一定吧?调用子程序或函数常用,CPU中也用队列。
3.栈是一种对所有插入、删除操作限于在表的一端进行的线性表,是一种后进先出型结构。
(V)4.对于不同的使用者,一个表结构既可以是栈,也可以是队列,也可以是线性表。
(V)•正确,都是线性逻辑结构,栈和队列其实是特殊的线性表,对运算的定义略有不同而己。
5.栈和链表是两种不同的数据结构。
(X)错,栈是逻辑结构的概念,是特殊殊线性表,而链表是存储结构概念,二者不是同类项。
6.栈和队列是种非线性数据结构。
(X )错,他们都是线性逻辑结构,栈和队列其实是特殊的线性表,对运算的定义略有不同而已。
7.栈和队列的存储方式既可是顺序方式,也可是链接方式。
(J)8•两个栈共享一片连续内存空间时,为提高内存利用率,减少溢出机会,应把两个栈的栈底分别设在这片内存空间的两端。
(丿)9•队是一种插入与删除操作分别在表的两端进行的线性表,是一种先进后出型结构。
错,后半句不对。
(X)10.—个栈的输入序列是12345,则栈的输出序列不可能是12345。
( X )错,有可能。
二.选择题(每项选择1分,共26分)12345B C B A D6: A:a2, B:a4, C: al, D: a2, E :27.A=2, B=2, C= 1, D= 6, E=48.A=2, B=1,C= 2, D= 4, E=391011121314C D A D D D三、填空题(每空2分,共30分)1•向量、栈和队列都是线性结构,可以在向量的任何位置插入和删除元素;对于栈只能在栈顶插入和删除元素;对于队列只能在队尾插入和队首删除元素。
十套数据结构试题及答案
![十套数据结构试题及答案](https://img.taocdn.com/s3/m/02f5686e68eae009581b6bd97f1922791788be72.png)
数据构造试卷〔一〕一、单项选择题〔每题 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.通常从四个方面评价算法的质量:____时间正确性_____、____占用内存_易读性____、____复杂度__强壮性___和_____准确度_ 高效率___。
数据结构自测试题及答案
![数据结构自测试题及答案](https://img.taocdn.com/s3/m/04bbddcd59f5f61fb7360b4c2e3f5727a5e9240a.png)
数据结构自测题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或FILO 7。
下列数据结构中,是非线性结构的是( 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。
数据结构是数据在计算机内的组成形式和相互关系。
- 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,请定义二叉链表的结构,并写一个函数,求出该二叉树中结点的个数。