2020年考研计算机数据结构模拟试题及答案(三)

合集下载

考研计算机专业基础题库数据结构练习题

考研计算机专业基础题库数据结构练习题

考研计算机专业基础题库数据结构练习题一、选择题1. 以下哪种数据结构适合用于表示并操作大量具有层次关系的数据?A. 队列B. 栈C. 树D. 图正确答案:C解析:树结构适合表示并操作具有层次关系的数据,例如文件系统、组织结构等。

2. 在二叉树中,每个节点最多有几个子节点?A. 0B. 1C. 2D. 多于2正确答案:C解析:二叉树中每个节点最多有两个子节点。

3. 在链表中,节点之间的连接关系通过什么方式表示?A. 数组索引B. 指针C. 标签D. 无连接正确答案:B解析:链表中的节点通过指针实现之间的连接关系。

4. 哪种数据结构可以实现先进先出(FIFO)的操作方式?A. 队列B. 栈C. 树D. 图正确答案:A解析:队列是一种先进先出的数据结构。

5. 下列哪个算法用于对一组数据进行排序?A. 二分查找B. 广度优先搜索C. 深度优先搜索D. 快速排序正确答案:D解析:快速排序是一种用于对一组数据进行排序的算法。

二、填空题1. 在二叉搜索树中,左子树节点值均小于根节点值,右子树节点值均大于根节点值,这一特性被称为_二叉搜索树的性质_。

2. 通过什么方式可以遍历一个二叉树的所有节点?_前序遍历_、_中序遍历_、_后序遍历_3. 堆是一种完全二叉树,并且堆中的任意父节点的值都_大于等于_或_小于等于_其子节点的值。

4. 图中描述节点之间的连接关系的数据结构称为_邻接表_。

5. 广度优先搜索算法可以用于解决_最短路径问题_。

三、简答题1. 请简要介绍树的基本概念和常见应用。

树是一种非线性的数据结构,由节点和连接节点的边构成。

树中的节点分为根节点、叶节点和中间节点。

树的层次由根节点开始计算,根节点位于第0层,其子节点位于第1层,以此类推。

常见的树结构包括二叉树、二叉搜索树、AVL树和B树等。

树的应用非常广泛,例如文件系统的目录结构可以用树来表示,组织结构、家谱等层次关系也可以用树来描述。

此外,树还可以用于算法中,例如树的遍历和查找操作。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

数据结构试题库及答案

数据结构试题库及答案

数据结构试题库及答案一、选择题(每题2分,共20分)1. 在数据结构中,线性表的顺序存储结构通常使用()来存储。

A. 链表B. 栈C. 队列D. 数组答案:D2. 以下哪个算法不是排序算法?A. 快速排序B. 归并排序C. 深度优先搜索D. 堆排序答案:C3. 在二叉树的遍历算法中,先访问根节点,然后遍历左子树,最后遍历右子树的遍历方式是()。

A. 先序遍历B. 中序遍历C. 后序遍历D. 层序遍历答案:A4. 哈希表的冲突解决方法不包括以下哪种?A. 链地址法B. 线性探测法C. 二分查找法D. 再散列法答案:C5. 在图的遍历算法中,广度优先搜索(BFS)使用的辅助数据结构是()。

A. 栈B. 队列C. 堆D. 链表答案:B6. 下列关于堆的描述中,错误的是()。

A. 堆是一种特殊的完全二叉树B. 堆中的每个节点的值都大于其子节点的值C. 堆可以用于实现优先队列D. 堆的插入操作的时间复杂度为O(log n)答案:B7. 在一个长度为n的数组中,使用二分查找算法查找一个元素的最坏情况下的时间复杂度是()。

A. O(1)B. O(n)C. O(n^2)D. O(log n)答案:D8. 以下哪个数据结构不是线性结构?A. 链表B. 栈C. 队列D. 二叉树答案:D9. 以下哪个算法是动态查找表?A. 直接索引B. 顺序查找C. 二分查找D. 哈希表答案:D10. 在图的表示方法中,邻接矩阵表示法的缺点是()。

A. 占用空间大B. 占用空间小C. 插入和删除操作复杂D. 遍历操作复杂答案:A二、填空题(每题2分,共20分)1. 在一个长度为n的数组中,使用顺序查找算法查找一个元素的时间复杂度为________。

答案:O(n)2. 一个具有n个节点的完全二叉树的高度为________。

答案:log2(n) + 1(向上取整)3. 一个长度为n的链表,删除一个节点的时间复杂度为________。

答案:O(1)4. 在图的表示方法中,邻接表表示法的缺点是________。

计算机考研-数据结构 习题 王道前3套(标记版)

计算机考研-数据结构 习题 王道前3套(标记版)

的结点数为( )个。
A. 4
B. 5
C. 6
D. 7
4. 已知某二叉树的中序、层序序列为 DBAFCE、FDEBCA,则该二叉树的后序序列为( )。
A. BCDEAF
B. ABDCEF
C. DBACEF
D. DABECF
5. 以下关于二叉排序树的说法中,错误的有( )个。
I. 对一棵二叉排序树按前序遍历得出的结点序列是从小到大的序列
II. 每个结点的值都比它左孩子的值大、比它右孩子结点的值小,则这样的一棵二叉树就是二叉排序

III. 在二叉排序树中,新插入的关键字总是处于最底层 IV. 删除二叉排序树中的一个结点再重新插入,得到的二叉排序树和原来的相同
A. 1
B. 2
C. 3
D. 4
6. 如右图所示为一棵平衡二叉树(字母不是关键字),在结点 D 的右子树上插入结
B. FFB6H C. A1B6H
D. D0DBH
15. 某存储系统中,主存容量是 Cache 容量的 4096 倍,Cache 被分为 64 个块,当主存地址和 Cache 地址
采用直接映像方式时,地址映射表的大小应为( )。(假设不考虑一致维护位)
A. 6×4097 bit
B. 64×12 bit
A. 4
B. 5
C. 6
D. 7
27. 设 m 为同类资源数,n 为系统中并发进程数。当 n 个进程共享 m 个互斥资源时,每个进程的最大需求
是 w,则下列情况会出现系统死锁的是( )。
A. m=2,n=1,w=2
B. m=2,n=2,w=1
C. m=4,n=3,w=2
D. m=4,n=2,w=3
28. 有一请求分页式存储管理系统,页面大小为每页 100 字节,有一个 50×50 的整型数组按行为主序连续

2020年计算机网络考研真题与典型题详解

2020年计算机网络考研真题与典型题详解

目 录第1章 概 述1.1 知识要点总结1.2 考研真题与典型题详解第2章 物理层2.1 知识要点总结2.2 考研真题与典型题详解第3章 数据链路层3.1 知识要点总结3.2 考研真题与典型题详解第4章 网络层4.1 知识要点总结4.2 考研真题与典型题详解第5章 传输层5.1 知识要点总结5.2 考研真题与典型题详解第6章 应用层6.1 知识要点总结6.2 考研真题与典型题详解附录 模拟试题计算机网络考研模拟试题及详解(一)计算机网络考研模拟试题及详解(二)计算机网络考研模拟试题及详解(三)第1章 概 述1.1 知识要点总结一、计算机网络概述1.计算机网络的概念、组成与功能(1)计算机网络的概念所谓计算机网络,就是指独立自治、相互连接的计算机集合。

自治是指每台计算机的功能是完整的,可以独立工作,其中任何一台计算机都不能干预其他计算机的工作,任何两台计算机之间没有主从关系。

相互连接是指计算机之间在物理上是互联的,在逻辑上能够彼此交换信息。

确切地讲,计算机网络就是用通信线路将分布在不同地理位置上的具有独立工作能力的计算机连接起来,并配置相应的网络软件,以实现计算机之间的数据通信和资源共享。

计算机网络的概念可以从三个角度进行定义:①按广义定义:计算机网络是利用通信线路将地理上分散的、具有独立功能的计算机系统和通信设备按不同的形式连接起来,以功能完善的网络软件及协议实现资源共享和信息传递的系统。

②按连接定义:计算机网络是将分布在不同地理位置上具有独立工作能力的计算机、终端及其附属设备用通信设备和通信线路连接起来,并配置网络软件,以实现计算机资源共享的系统。

③按需求定义:计算机网络是由大量独立的、但相互连接起来的计算机来共同完成计算机任务。

(2)计算机网络的组成从不同的角度,可以将计算机网络的组成分为以下三类:①在组成部分上,计算机网络主要由硬件、软件和协议三大部分组成。

硬件主要由主机、终端、传输介质和连接设备等组成。

2020年全国计算机二级等级考试模拟试卷及答案(第三套)

2020年全国计算机二级等级考试模拟试卷及答案(第三套)

2020年全国计算机二级等级考试模拟试卷及答案(第三套)1.下列叙述中正确的是()。

A) 栈是"先进先出"的线性表B) 队列是"先进后出"的线性表C) 循环队列是非线性结构D) 有序线性表既可以采用顺序存储结构,也可以采用链式存储结构参考答案:D2.支持子程序调用的数据结构是()。

A) 栈B) 树C) 队列D) 二叉树参考答案:A3.某二叉树有5个度为2的结点,则该二叉树中的叶子结点数是()。

A) 10B) 8C) 6D) 4参考答案:C4.下列排序方法中,最坏情况下比较次数最少的是()。

A) 冒泡排序B) 简单选择排序C) 直接插入排序D) 堆排序参考答案:D5.软件按功能可以分为:应用软件、系统软件和支撑软件(或工具软件)。

下面属于应用软件的是()。

A) 编译程序B) 操作系统C) 教务管理系统D) 汇编程序参考答案:C6.下面叙述中错误的是()A) 软件测试的目的是发现错误并改正错误B) 对被调试的程序进行"错误定位"是程序调试的必要步骤C) 程序调试通常也称为DebugD) 软件测试应严格执行测试计划,排除测试的随意性参考答案:A7.下面叙述中错误的是()A) 软件测试的目的是发现错误并改正错误B) 对被调试的程序进行"错误定位"是程序调试的必要步骤C) 程序调试通常也称为DebugD) 软件测试应严格执行测试计划,排除测试的随意性参考答案:A8.数据库应用系统中的核心问题是()。

A) 数据库设计B) 数据库系统设计C) 数据库维护D) 数据库管理员培训参考答案:A9.有两个关系R,S如下:由关系R通过运算得到关系S,则所使用的运算为()。

A) 选择B) 投影C) 插入D) 连接参考答案:B10.将E-R图转换为关系模式时,实体和联系都可以表示为()。

A) 属性B) 键C) 关系D) 域参考答案:C11.以下叙述中错误的是()。

考研数据结构试题及答案

考研数据结构试题及答案

考研数据结构试题及答案一、选择题(每题2分,共10分)1. 在数据结构中,线性表的顺序存储结构通常使用什么数据结构来实现?A. 链表B. 栈C. 数组D. 队列答案:C2. 下列关于图的描述中,错误的是:A. 图是由顶点和边组成的B. 图中的边可以是无向边或有向边C. 图中任意两个顶点之间有且只有一条边D. 图可以是无向的或有向的答案:C3. 哈希表的冲突可以通过以下哪种方法来解决?A. 链地址法B. 排序C. 插入排序D. 选择排序答案:A4. 在二叉树的遍历算法中,先访问根节点,然后遍历左子树,最后遍历右子树,这种遍历方式被称为:A. 前序遍历B. 中序遍历C. 后序遍历D. 层序遍历答案:A5. 在排序算法中,时间复杂度为O(nlogn)的算法是:A. 冒泡排序B. 快速排序C. 插入排序D. 选择排序答案:B二、填空题(每题2分,共10分)1. 在二叉搜索树中,对于任意节点,其左子树中的所有节点的值都比该节点的值________。

答案:小2. 堆是一种特殊的完全二叉树,其中每个节点的值都大于或等于其子节点的值的堆被称为________。

答案:最大堆3. 在图的遍历中,深度优先搜索(DFS)使用的数据结构是________。

答案:栈4. 动态数组在进行插入操作时,如果数组已满,通常需要进行________操作。

答案:扩容5. 快速排序算法在最坏情况下的时间复杂度是________。

答案:O(n^2)三、简答题(每题5分,共20分)1. 请简述什么是递归,并举例说明递归在数据结构中的应用。

答案:递归是一种方法,它允许函数调用自身来解决问题。

在数据结构中,递归常用于遍历树和图,例如二叉树的前序、中序和后序遍历。

2. 描述排序算法中的稳定性和不稳定性,并给出一个稳定性排序算法的例子。

答案:稳定性排序算法是指在排序过程中,相等的元素的相对顺序不会改变。

不稳定性排序算法则可能改变相等元素的相对顺序。

数据结构模拟试题与答案3

数据结构模拟试题与答案3

《数据结构》模拟试题3一、单项选择题1.带头结点的单向链表为空的判断条件是()(设头指针为head)。

A.head = =NULL B.head!=NULLC.head->next= =head D.head->next= =NULL2.非空的单向循环链表的尾结点满足()(设头指针为head,指针p指向尾结点)。

A.p->next = =NULL B.p= =NULL C.p= =head D.p->next= =head3.算法的时间复杂度与()有关。

A.所使用的计算机B.计算机的操作系统C.算法本身D.数据结构4.设有一个长度为n的顺序表,要删除第i个元素需移动元素的个数为()。

A.n-i+1 B.n-i C.n-i-1 D.i5.在一个单链表中p所指结点之后插入一个s所指的结点时,可执行()。

A.p=s→next B.p→next=s→next;C.s→next=p→next; p→next=s; D.p→next= s; s→next= p→next6.在一个链队中,假设f和r分别为队头和队尾指针,则删除一个结点的运算为()。

A.r=f→next; B.r=r→next; C.f=f→next; D.f=r→next;7.元素1,3,5,7按顺序依次进栈,则该栈的不可能输出序列是()(进栈出栈可以交替进行)。

A.7,5,3,1 B.7,5,1,3C.3,1,7,5 D.1,3,5,78.在C语言中,顺序存储长度为3的字符串,需要占用()个字节。

A.4 B.3 C.6 D.129.在一棵二叉树中,若编号为i的结点存在左孩子,则左孩子的顺序编号为()。

A.2i B.2i-1 C.2i+1 D.2i+210.一棵具有35个结点的完全二叉树,最后一层有()个结点。

A.4 B.6 C.16 D.811.在一个无向图中,所有顶点的度数之和等于边数的()倍。

A.3 B.2 C.2.5 D.1.512.已知如图3所示的一个图,若从顶点V1出发,按广度优先法进行遍历,则可能得到的一种顶点序列为()。

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

2020年考研计算机数据结构模拟试题及答案(三)
一、选择题(30分)
1. 1. 字符串的长度是指( )。

(A) 串中不同字符的个数 (B) 串中不同字母的个数
(C) 串中所含字符的个数 (D) 串中不同数字的个数
2. 2. 建立一个长度为n的有序单链表的时间复杂度为( )
(A) O(n) (B) O(1) (C) O(n2) (D) O(log2n)
3. 3. 两个字符串相等的充要条件是( )。

(A) 两个字符串的长度相等 (B) 两个字符串中对应位置上的字符
相等
(C) 同时具备(A)和(B)两个条件 (D) 以上答案都不对
4. 4. 设某散列表的长度为100,散列函数H(k)=k % P,则P通
常情况下选择( )。

(A) 99 (B) 97 (C) 91 (D) 93
5. 5. 在二叉排序树中插入一个关键字值的平均时间复杂度为( )。

(A) O(n) (B) O(1og2n) (C) O(nlog2n) (D) O(n2)
6. 6. 设一个顺序有序表A[1:14]中有14个元素,则采用二分法查找元素A[4]的过程中比较元素的顺序为( )。

(A) A[1],A[2],A[3],A[4] (B) A[1],A[14],A[7],A[4]
(C) A[7],A[3],A[5],A[4] (D) A[7],A[5] ,A[3],A[4]
7. 7. 设一棵完全二叉树中有65个结点,则该完全二叉树的深度
为( )。

(A) 8 (B) 7 (C) 6 (D) 5
8. 8. 设一棵三叉树中有2个度数为1的结点,2个度数为2的结点,2个度数为3的结点,则该三叉链权中有( )个度数为0的结点。

(A) 5 (B) 6 (C) 7 (D) 8
9. 9. 设无向图G中的边的集合E={(a,b),(a,e),(a,c),(b,
e),(e,d),(d,f),(f,c)},则从顶点a出发实行深度优先遍历能
够得到的一种顶点序列为( )。

(A) aedfcb (B) acfebd (C) aebcfd (D) aedfbc
10. 10. 队列是一种( )的线性表。

(A) 先进先出 (B) 先进后出 (C) 只能插入 (D) 只能删除
二、判断题(20分)
1. 1. 如果两个关键字的值不等但哈希函数值相等,则称这两个
关键字为同义词。

( )
2. 2. 设初始记录关键字基本有序,则快速排序算法的时间复杂
度为O(nlog2n)。

( )
3. 3. 分块查找的基本思想是首先在索引表中实行查找,以便确
定给定的关键字可能存有的块号,然后再在相对应的块内实行顺序查找。

( )
4. 4. 二维数组和多维数组均不是特殊的线性结构。

( )
5. 5. 向二叉排序树中插入一个结点需要比较的次数可能大于该
二叉树的高度。

( )
6. 6. 如果某个有向图的邻接表中第i条单链表为空,则第i个
顶点的出度为零。

( )
7. 7. 非空的双向循环链表中任何结点的前驱指针均不为空。

( )
8. 8. 不论线性表采用顺序存储结构还是链式存储结构,删除值
为X的结点的时间复杂度均为O(n)。

( )
9. 9. 图的深度优先遍历算法中需要设置一个标志数组,以便区
分图中的每个顶点是否被访问过。

( )
10. 10. 稀疏矩阵的压缩存储能够用一个三元组表来表示稀疏矩
阵中的非0元素。

( )
三、填空题(30分)
1. 1. 设一组初始记录关键字序列为(49,38,65,97,76,13,27,50),则以d=4为增量的一趟希尔排序结束后的结果为
_____________________________。

2. 2. 下面程序段的功能是实现在二叉排序树中插入一个新结点,请在下划线处填上准确的内容。

typedef struct node{int data;struct node *lchild;struct node *rchild;}bitree;
void bstinsert(bitree *&t,int k)
{
if (t==0 ) {____________________________;t->data=k;t-
>lchild=t->rchild=0;}
else if (t->data>k) bstinsert(t-
>lchild,k);else__________________________;
}
3. 3. 设指针变量p指向单链表中结点A,指针变量s指向被插入的结点X,则在结点A的后面插入结点X需要执行的语句序列:s-
>next=p->next; _________________;。

4. 4. 设指针变量head指向双向链表中的头结点,指针变量p指
向双向链表中的第一个结点,则指针变量p和指针变量head之间的关
系是p=_________和head=__________(设结点中的两个指针域分别为llink和rlink)。

5. 5. 设某棵二叉树的中序遍历序列为ABCD,后序遍历序列为BADC,则其前序遍历序列为__________。

6. 6. 完全二叉树中第5层上最少有__________个结点,最多有
_________个结点。

7. 7. 设有向图中不存有有向边,则其对应的邻接矩阵A中的数
组元素A[i][j]的值等于____________。

8. 8. 设一组初始记录关键字序列为(49,38,65,97,76,13,27,50),则第4趟直接选择排序结束后的结果为
_____________________________。

9. 9. 设连通图G中有n个顶点e条边,则对应的最小生成树上
有___________条边。

10. 10. 设有一组初始记录关键字序列为(50,16,23,68,94,70,73),则将它们调整成初始堆只需把16与___________相互交换即可。

四、算法设计题(20分)
1. 1. 设计一个在链式存储结构上统计二叉树中结点个数的算法。

2. 2. 设计一个算法将无向图的邻接矩阵转为对应邻接表的算法。

答案
一、选择题
1.C
2.C
3.C
4.B
5.B
6.C
7.B
8.C
9.A 10.A
二、判断题
1.对
2.错
3.对
4.错
5.错
6.对
7.对
8.对
9.对 10.对
三、填空题
1. 1. (49,13,27,50,76,38,65,97)
2. 2. t=(bitree *)malloc(sizeof(bitree)),bstinsert(t-
>rchild,k)
3. 3. p->next=s
4. 4. head->rlink,p->llink
5. 5. CABD
6. 6. 1,16
7. 7. 0
8. 8. (13,27,38,50,76,49,65,97)
9. 9. n-1
10. 10. 50
四、算法设计题
1. 1. 设计一个在链式存储结构上统计二叉树中结点个数的算法。

void countnode(bitree *bt,int &count)
{
if(bt!=0)
{count++; countnode(bt->lchild,count); countnode(bt-
>rchild,count);}
}
2. 2. 设计一个算法将无向图的邻接矩阵转为对应邻接表的算法。

typedef struct {int vertex[m]; int edge[m][m];}gadjmatrix;
typedef struct node1{int info;int adjvertex; struct node1 *nextarc;}glinklistnode;
typedef struct node2{int vertexinfo;glinklistnode
*firstarc;}glinkheadnode;
void adjmatrixtoadjlist(gadjmatrix g1[ ],glinkheadnode
g2[ ])
{
int i,j; glinklistnode *p;
for(i=0;iadjvertex=j;
p->nextarc=g[i].firstarc; g[i].firstarc=p;
p=(glinklistnode *)malloc(sizeof(glinklistnode));p-
>adjvertex=i;
p->nextarc=g[j].firstarc; g[j].firstarc=p;
}
}。

相关文档
最新文档