大数据结构考研真题及其问题详解
数据结构c考研试题及答案
![数据结构c考研试题及答案](https://img.taocdn.com/s3/m/f41812b580c758f5f61fb7360b4c2e3f5627257d.png)
数据结构c考研试题及答案数据结构C考研试题及答案1. 选择题1.1 以下哪个选项不是线性表的顺序存储结构的特点?A. 存储空间连续B. 存储空间不连续C. 可以随机访问D. 插入和删除操作效率低答案:B1.2 在二叉树的遍历中,先访问根节点,然后遍历左子树,最后遍历右子树,这种遍历方式称为:A. 前序遍历B. 中序遍历C. 后序遍历D. 层序遍历答案:A2. 填空题2.1 在一个长度为n的数组中,使用二分查找法查找一个元素,最坏情况下需要比较的次数为______。
答案:log2(n+1)-12.2 哈希表的冲突解决方法有多种,其中一种方法是______。
答案:链地址法3. 简答题3.1 请简述图的深度优先搜索(DFS)算法的步骤。
答案:深度优先搜索算法的步骤如下:1. 访问起始顶点;2. 对于起始顶点的每一个邻接顶点,如果未被访问,则递归地进行深度优先搜索;3. 继续对未访问的邻接顶点进行步骤2,直到所有邻接顶点都被访问;4. 回溯到上一个顶点,继续访问未访问的邻接顶点,直到所有顶点都被访问。
3.2 什么是堆排序算法?请简要描述其工作原理。
答案:堆排序算法是一种基于二叉堆的比较排序算法。
其工作原理如下:1. 将待排序的序列构造成一个大顶堆;2. 将堆顶元素,即当前最大值,与序列末端元素进行交换,然后将序列长度减一;3. 对新的堆顶元素调整为新堆的堆顶;4. 重复步骤2和3,直到堆的大小为1或0。
4. 编程题4.1 编写一个函数,实现单链表的反转。
答案:```cstruct ListNode {int val;struct ListNode *next;};struct ListNode* reverseList(struct ListNode* head) {struct ListNode* prev = NULL;struct ListNode* curr = head;struct ListNode* next = NULL;while (curr != NULL) {next = curr->next;curr->next = prev;prev = curr;curr = next;}head = prev;return head;}```4.2 给定一个二叉搜索树的根节点,请实现一个函数,返回树中任意两个节点的值的差的绝对值的最小值。
数据结构考研真题和答案
![数据结构考研真题和答案](https://img.taocdn.com/s3/m/bd169dc105a1b0717fd5360cba1aa81145318f6b.png)
数据结构考研真题和答案数据结构是计算机科学中的重要基础课程,对于计算机专业的学生而言,掌握好数据结构非常关键。
考研阶段,数据结构也是一个必考科目。
本文将介绍一些常见的数据结构考研真题以及详细的答案解析,希望能帮助同学们更好地备考。
1. 简述线性表的定义,举例说明线性表的应用场景。
线性表是数据结构中最基本的一种结构,它是由相同数据类型的有限个数据元素组成的序列。
线性表的特点是存储结构唯一,数据元素之间是一对一的关系。
在实际应用中,线性表常用来表示一组某种类型的数据集合,例如存储学生的学号信息、存储职工的工号信息等。
2. 解释栈的特点及其应用场景。
栈是一种特殊的线性表,它的特点是只能在表的一端进行插入和删除操作,表的另一端称为栈顶。
栈的插入操作称为入栈,删除操作称为出栈。
栈的特点是后进先出(LIFO),即最后插入的元素最先被删除。
栈在实际应用中有很多场景,例如函数调用栈、表达式求值、撤销操作等。
3. 什么是队列?请给出队列的一个实际应用案例。
队列也是一种特殊的线性表,它的特点是只允许在表的一端进行插入操作,而在另一端进行删除操作。
队列的插入操作称为入队,删除操作称为出队。
队列的特点是先进先出(FIFO),即最先插入的元素最先被删除。
队列在实际应用中有很多场景,例如排队、任务调度、消息队列等。
4. 什么是树结构?请简要介绍树结构的一些应用。
树是一种非线性的数据结构,它由n(n>=1)个有限节点组成一个具有层次关系的集合。
树的特点是一个节点可以有多个子节点,但是只能有一个父节点,除根节点外,每个节点可以有多个子节点。
树结构在实际应用中广泛存在,例如文件系统、组织结构、网络拓扑等。
5. 解释二叉树的定义,并给出一种常见的二叉树结构。
二叉树是一种特殊的树结构,它的每个节点最多有两个子节点,分别称为左子节点和右子节点。
二叉树的定义为一个有限的节点集合,该集合可以为空,如果非空则必须满足:(1)有且仅有一个称为根的节点;(2)该节点的左子树和右子树也是二叉树。
数据结构考研真题及其答案
![数据结构考研真题及其答案](https://img.taocdn.com/s3/m/9a2cff8b10a6f524cdbf855f.png)
一、选择题1. 算法的计算量的大小称为计算的(B )。
【北京邮电大学2000 二、3 (20/8分)】A.效率 B. 复杂性 C. 现实性 D. 难度2. 算法的时间复杂度取决于(C )【中科院计算所1998 二、1 (2分)】A.问题的规模 B. 待处理数据的初态 C. A和B3.计算机算法指的是(C),它必须具备(B)这三个特性。
(1) A.计算方法 B. 排序方法 C. 解决问题的步骤序列D. 调度方法(2) A.可执行性、可移植性、可扩充性B. 可执行性、确定性、有穷性C. 确定性、有穷性、稳定性D. 易读性、稳定性、安全性【南京理工大学1999 一、1(2分)【武汉交通科技大学1996 一、1(4分)】4.一个算法应该是(B )。
【中山大学1998 二、1(2分)】A.程序B.问题求解步骤的描述C.要满足五个基本特性D.A和C.5. 下面关于算法说法错误的是( D )【南京理工大学2000 一、1(分)】A.算法最终必须由计算机程序实现B.为解决某问题的算法同为该问题编写的程序含义是相同的C. 算法的可行性是指指令不能有二义性D. 以上几个都是错误的6. 下面说法错误的是( C )【南京理工大学2000 一、2 (分)】(1)算法原地工作的含义是指不需要任何额外的辅助空间(2)在相同的规模n下,复杂度O(n)的算法在时间上总是优于复杂度O(2n)的算法(3)所谓时间复杂度是指最坏情况下,估算算法执行时间的一个上界(4)同一个算法,实现语言的级别越高,执行效率就越低4 A.(1) B.(1),(2) C.(1),(4) D.(3)7.从逻辑上可以把数据结构分为( C )两大类。
【武汉交通科技大学1996 一、4(2分)】A.动态结构、静态结构B.顺序结构、链式结构C.线性结构、非线性结构D.初等结构、构造型结构8.以下与数据的存储结构无关的术语是( D )。
【北方交通大学2000 二、1(2分)】A.循环队列 B. 链表 C. 哈希表 D.栈9.以下数据结构中,哪一个是线性结构(D )【北方交通大学2001 一、1(2分)】A.广义表 B. 二叉树 C. 稀疏矩阵 D. 串10.以下那一个术语与数据的存储结构无关( A )【北方交通大学2001 一、2(2分)】A.栈 B. 哈希表 C. 线索树 D. 双向链表11.在下面的程序段中,对x的赋值语句的频度为(C )【北京工商大学2001 一、10(3分)】FOR i:=1 TO n DOFOR j:=1 TO n DOx:=x+1;A.O(2n) B.O(n) C.O(n2) D.O(log2n) 12.程序段FOR i:=n-1 DOWNTO 1 DOFOR j:=1 TO i DOIF A[j]>A[j+1]THEN A[j]与A[j+1]对换;其中n为正整数,则最后一行的语句频度在最坏情况下是( D )A. O(n)B. O(nlogn)C. O(n3)D. O(n2) 【南京理工大学1998一、1(2分)】13.以下哪个数据结构不是多型数据类型( D )【中山大学1999 一、3(1分)】A.栈B.广义表C.有向图D.字符串14.以下数据结构中,( A )是非线性数据结构【中山大学1999 一、4】A.树B.字符串C.队D.栈15. 下列数据中,(C)是非线性数据结构。
2023年研究生全国统考计算机试题——数据结构与操作系统试题解析
![2023年研究生全国统考计算机试题——数据结构与操作系统试题解析](https://img.taocdn.com/s3/m/cb72e37c5627a5e9856a561252d380eb629423d3.png)
一、单项选择题1. 下列对顺序存储的有序表(长度为n)实现给定操作的算法中平均时间复杂度为O(1)的是()。
A、查找包含指定值元素的值B、插入包含指定值元素的算法C、删除第i(1≤i≤n)个元素的算法D、获取第i(1≤i≤n)个值的算法2、现有非空双向链表L,其结点结构为,prev是指向直接前驱结点的指针,next是指向直接后继结点的指针。
若要在L中指针p 所指向的结点(非尾结点)之后插入指针s指向的新结点,则在执行了语句序列:“s->next=p->next;p->next=s;”,后,还要执行()。
A、s->next->prev=p;s->prev=p;B、p->next->prev=s;s->prev=p;C、s->prev=s->next->prev; s->next->prev=s;D、p->next->prev=s->prev;s->next->prev=p;3、若采用三元组表存储结构存储稀疏矩阵M,则除三元组外,下列数据中还需要保存的是()。
I. M的行数;II.M中包含非零元素的行数;III.M的列数;IV.M中包含非零元素的列数。
A、仅I、IIIB、仅I、IIC、仅III、IVD、I、II、III、IV4、在由6个字符组成的字符集S中,各个字符出现的频次分别为3,4,5,6,8,10,为S构造的哈夫曼树的加权平均长度为()。
A、2.4B、2.5C、2.67D、2.75注:每个关键字的查找长度为:图片加权平均长度为:(3×3+3×4+3×5+3×6+2×8+2×10)/(3+4+5+6+8+10)=2.5。
如果不考虑权重,会错误计算为(3+3+3+3+2+2)/6≈2.67,从而误选C。
5、已知一棵二叉树的树形如下图所示,若其后序遍历为fdbeca,则其先序列为()。
数据结构考研真题与答案解析
![数据结构考研真题与答案解析](https://img.taocdn.com/s3/m/b32d6eccf80f76c66137ee06eff9aef8951e4866.png)
数据结构考研真题与答案解析【数据结构考研真题与答案解析】数据结构是计算机科学与技术中的重要学科,也是考研中不可或缺的一部分。
在考研中,掌握数据结构的相关知识对于顺利通过考试至关重要。
本文将为大家介绍一些历年考研真题,并对答案进行解析,希望对大家备考有所帮助。
一、堆排序相关问题1. 2014年考研真题(题目描述)给定n个整数的序列S,其中$n \leq 10^6$且没有相同元素,并且给定另外的一个元素x,输出S中小于x的最大的数,如果不存在则输出“-1”。
(解析)这是一道关于堆排序的问题。
我们可以利用大顶堆来解决这个问题。
首先建立一个大顶堆,然后依次将序列S中的元素插入到堆中。
在插入的过程中,我们可以通过比较当前元素和x的大小,找到小于x的最大的数。
最后输出即可。
若不存在小于x的元素,则输出“-1”。
二、图的遍历问题2. 2016年考研真题(题目描述)对于一个无向图G,设计一个算法,判断图G是否连通,并给出详细的算法描述和复杂度分析。
(解析)对于这个问题,我们可以使用深度优先搜索(DFS)或广度优先搜索(BFS)来解决。
我们可以从图中的任意一个节点开始进行深度或广度遍历,然后标记遍历过的节点。
最后判断所有的节点是否都被遍历到,若是,则图G是连通的,否则不连通。
若使用邻接表表示图,则DFS和BFS的时间复杂度均为O(|V|+|E|),其中|V|和|E|分别代表图中的节点数和边数。
三、二叉搜索树相关问题3. 2018年考研真题(题目描述)给定一个二叉搜索树,请设计一个算法,找出其中第k大的节点。
(解析)对于这个问题,我们可以利用二叉搜索树的性质。
由于二叉搜索树的中序遍历结果是有序的,我们可以进行中序遍历,并将遍历结果保存到一个有序数组中。
然后根据数组中第k个位置的元素找到对应的节点即可。
算法的时间复杂度为O(n),其中n为二叉搜索树中节点的个数。
四、哈夫曼编码问题4. 2017年考研真题(题目描述)给定一段文字,编写一个算法,根据字符出现的频率构建哈夫曼编码。
数据结构考研真题与解析
![数据结构考研真题与解析](https://img.taocdn.com/s3/m/10b6cef664ce0508763231126edb6f1afe007140.png)
数据结构考研真题与解析数据结构考研真题与解析数据结构是计算机科学中非常重要的一门课程,也是考研中的必考科目之一。
掌握好数据结构的知识,对于提高编程能力和解决实际问题具有重要意义。
在备考过程中,了解历年的考研真题并进行解析是很有帮助的。
本文将通过对数据结构考研真题的解析,帮助读者更好地理解数据结构的知识点和解题技巧。
第一道题目是关于树的遍历的。
题目要求给定一棵二叉树的前序遍历和中序遍历序列,求出该二叉树的后序遍历序列。
这是一道经典的树的遍历问题,解题的关键在于找到根节点的位置,并将问题划分为子问题进行递归求解。
通过观察前序遍历和中序遍历序列,我们可以发现前序遍历序列的第一个元素一定是根节点,而在中序遍历序列中,根节点的左边是其左子树的中序遍历序列,右边是其右子树的中序遍历序列。
因此,我们可以通过递归的方式求解左子树和右子树的后序遍历序列,然后将根节点放在最后,即可得到整棵树的后序遍历序列。
第二道题目是关于图的最短路径的。
题目给定一个有向带权图,要求从图中的一个顶点出发,找到到达其他所有顶点的最短路径。
这是一个经典的图算法问题,可以使用Dijkstra算法来解决。
Dijkstra算法的思想是从起点开始,依次找到离起点最近的顶点,并更新其他顶点的最短路径。
具体实现时,可以使用一个数组来记录每个顶点的最短路径长度,以及一个优先队列来选择最短路径最小的顶点进行扩展。
通过不断更新最短路径长度,直到所有顶点都被访问到,即可得到最短路径。
第三道题目是关于排序算法的。
题目给定一个整数数组,要求使用快速排序算法对其进行排序。
快速排序是一种高效的排序算法,其基本思想是通过一趟排序将待排序序列分割成独立的两部分,其中一部分的元素都比另一部分的元素小,然后再对这两部分分别进行排序。
具体实现时,可以选择一个基准元素,将小于基准元素的放在左边,大于基准元素的放在右边,然后递归地对左右两部分进行排序。
通过不断地划分和排序,最终整个序列就会有序。
数据结构考研真题及其答案完整版
![数据结构考研真题及其答案完整版](https://img.taocdn.com/s3/m/bdf54c21a66e58fafab069dc5022aaea998f411d.png)
数据结构考研真题及其答案完整版数据结构是计算机科学与技术领域中的一门重要课程,也是计算机考研中必考的一门科目。
通过研究数据结构,可以帮助我们更好地理解和应用计算机算法,提高计算机程序的效率和性能。
为了帮助考生更好地备考数据结构,本文将分享一些数据结构考研真题及其答案,供考生参考。
一、选择题1. 下列关于栈的叙述中,错误的是()A. 栈是一种线性数据结构,具有后进先出(LIFO)的特点B. 栈可以用数组实现,也可以用链表实现C. 栈的插入和删除操作都是在同一端进行的D. 栈的插入和删除操作的时间复杂度都是O(1)答案:C解析:栈的插入操作叫做入栈,删除操作叫做出栈。
入栈和出栈操作都是在栈顶进行的,而不是同一端。
2. 假设要对n个整数关键字进行排序,以下排序算法中,平均时间复杂度最小的是()A. 冒泡排序B. 快速排序C. 归并排序D. 直接插入排序答案:C解析:归并排序的时间复杂度是O(nlogn),平均时间复杂度最小。
二、填空题1. 下列关于图的遍历顺序的说法中,正确的是:深度优先搜索访问的顺序是________,广度优先搜索访问的顺序是________。
答案:前序遍历,层次遍历解析:深度优先搜索即前序遍历,广度优先搜索即层次遍历。
2. 给定一个最小堆,若删除堆顶元素后,需要对堆进行调整,所采用的操作是________。
答案:下滤解析:删除堆顶元素后,将最后一个叶子节点放到堆顶,然后进行下滤操作。
三、简答题1. 请简要说明动态规划算法的基本思想和应用场景。
答:动态规划算法的基本思想是将问题分解为多个子问题,通过求解子问题的最优解来得到原问题的最优解。
它通常适用于具有重叠子问题和最优子结构性质的问题。
动态规划算法可以大大减少问题的重复计算,提高算法的效率和性能。
它在求解最短路径、最长公共子序列、背包问题等具有广泛的应用。
2. 请简要介绍红黑树的特点和应用场景。
答:红黑树是一种自平衡的二叉查找树,它具有以下特点:1) 每个节点都有一个颜色,红色或黑色;2) 根节点是黑色的;3) 叶子节点(NIL节点)都是黑色的;4) 如果一个节点是红色的,则它的两个子节点都是黑色的;5) 从根节点到叶子节点的路径上,不同路径上黑节点的个数相同。
数据结构考研题库
![数据结构考研题库](https://img.taocdn.com/s3/m/dad66f858ad63186bceb19e8b8f67c1cfad6ee05.png)
数据结构考研题库一、单选题1. 在数据结构中,下列哪个不属于线性表的存储结构?A. 顺序存储结构B. 链式存储结构C. 栈存储结构D. 树存储结构答案:D解析:线性表的存储结构包括顺序存储结构和链式存储结构,栈也是线性结构,因此选项C是线性表的一种存储结构。
树存储结构不属于线性表的存储结构。
2. 以下哪种排序算法的时间复杂度是O(nlogn)?A. 冒泡排序B. 插入排序C. 快速排序D. 堆排序答案:C解析:快速排序的时间复杂度是O(nlogn),而冒泡排序和插入排序的时间复杂度是O(n^2),堆排序的时间复杂度是O(nlogn)。
3. 在二叉树中,如果节点的度为2,那么该节点称为:A. 叶子节点B. 根节点C. 内部节点D. 空节点答案:C解析:节点的度是指该节点拥有的子树数目,度为2的节点称为内部节点。
叶子节点的度为0,根节点的度可以是任意数目。
4. 在哈希表中,通过关键字直接计算出数据元素存储地址的方法称为:A. 散列函数B. 哈希函数C. 转换函数D. 映射函数答案:A解析:哈希表中通过关键字计算存储地址的方法称为散列函数。
5. 图的存储结构有以下几种,不包括哪种?A. 邻接矩阵B. 邻接表C. 逆邻接矩阵D. 十字链表答案:C解析:图的存储结构包括邻接矩阵、邻接表、十字链表等,逆邻接矩阵不是图的存储结构。
二、填空题1. 在二叉树中,节点的度是指节点拥有的 __1__ 数目。
答案:子树2. 在散列表中,发生多个关键字映射到同一个存储地址的现象称为冲突,解决冲突的方法有 __2__ 和 __3__。
答案:开放地址法,链地址法3. 在树中,从根节点到叶子节点的路径上的节点数目称为树的__4__。
答案:高度4. 在图的深度优先搜索算法中,使用 __5__ 来记录已访问过的节点。
答案:栈5. 快速排序算法的平均时间复杂度为O(__6__)。
答案:nlogn三、简答题1. 请简要说明线性表的顺序存储结构和链式存储结构的特点及其适用场景。
数据结构考研真题及其答案_研究生入学考试_高等教育_教育专区 数据结
![数据结构考研真题及其答案_研究生入学考试_高等教育_教育专区 数据结](https://img.taocdn.com/s3/m/d3132470ff4733687e21af45b307e87101f6f81d.png)
数据结构考研真题及其答案_研究生入学考试_高等教育_教育专区数据结结考研真题及其答案据结构是计算机科学中重要的一门课程,它研究的是如何组织和管理数据的方式。
对于计算机专业的研究生来说,数据结构是必修课程,考研真题的复习和备考对于学生来说是非常重要的。
在本文中,我们将介绍一些数据结构考研真题及其答案,帮助学生更好地复习和备考。
第一题:给出以下数据结构中各个操作的时间复杂度:数组、链表、堆、栈、队列。
答案:数组的插入和删除操作的时间复杂度为O(n),查找操作的时间复杂度为O(1);链表的插入和删除操作的时间复杂度为O(1),查找操作的时间复杂度为O(n);堆的插入、删除和查找操作的时间复杂度都为O(logn);栈的插入、删除和查找操作的时间复杂度都为O(1);队列的插入、删除和查找操作的时间复杂度都为O(1)。
第二题:给出以下数据结构的特点:栈、队列、堆、二叉树、图。
答案:栈是一种后进先出(LIFO)的数据结构,只能在一端进行插入和删除操作;队列是一种先进先出(FIFO)的数据结构,插入操作在一端进行,删除操作在另一端进行;堆是一种完全二叉树,具有父节点的值大于等于子节点的值(大顶堆)或父节点的值小于等于子节点的值(小顶堆)的性质;二叉树是一种每个节点最多有两个子节点的树;图是由节点和连接节点的边组成的数据结构。
第三题:给定一个有序数组,要求在其中查找一个元素的位置并返回,如果找不到则返回-1,设计一个算法实现上述功能。
答案:可以使用二分查找算法来实现上述功能。
首先,将要查找的元素与有序数组的中间元素进行比较,如果相等,则返回中间元素的位置;如果要查找的元素小于中间元素,则在数组的前半部分继续进行二分查找;如果要查找的元素大于中间元素,则在数组的后半部分继续进行二分查找。
重复这个过程,直到找到要查找的元素或者确定元素不存在为止。
第四题:给出以下排序算法的时间复杂度:冒泡排序、插入排序、选择排序、快速排序、归并排序。
计算机考研数据结构典型试题全面解析
![计算机考研数据结构典型试题全面解析](https://img.taocdn.com/s3/m/293aa9faba4cf7ec4afe04a1b0717fd5360cb219.png)
计算机考研数据结构典型试题全面解析数据结构是计算机科学的重要基础课程,对于计算机考研学生来说,掌握数据结构的知识和解题技巧至关重要。
在考试中,常常会遇到一些典型的试题,今天我们将对其中一些试题进行全面解析,帮助大家更好地理解和应对这些问题。
1. 试题一:问题描述:给定一个有序数组arr和一个目标值target,要求在arr中找到两个数,使它们的和等于target,并返回这两个数的下标。
解题思路:由于数组是有序的,我们可以使用双指针来进行求解。
定义两个指针left和right,分别指向数组的首尾元素。
比较arr[left] + arr[right]与target的大小,若相等则返回left和right,若大于target,则right向左移动一位,若小于target,则left向右移动一位。
依次迭代直到找到满足条件的结果。
代码示例:```pythondef twoSum(arr, target):left, right = 0, len(arr) - 1while left < right:sum = arr[left] + arr[right]if sum == target:return [left, right]elif sum > target:right -= 1else:left += 1```2. 试题二:问题描述:给定一个链表的头节点head和一个整数k,要求将链表从末尾开始每k个节点反转一次,并返回反转后的链表头节点。
解题思路:首先,我们需要得到链表的长度。
然后,根据k的大小判断分段反转的次数。
使用双指针法,在每一段进行反转。
我们维护一个prev指针,指向当前段的前一个节点,然后依次反转每个段,并更新prev的位置。
代码示例:```pythondef reverseKGroup(head, k):length = 0node = headwhile node:length += 1node = node.nextdummy = ListNode(0)dummy.next = headprev = dummycur = headfor _ in range(length // k):for _ in range(k - 1):next = cur.nextcur.next = next.nextnext.next = prev.nextprev.next = nextprev = curcur = cur.nextreturn dummy.next```通过以上两个典型试题的解析,我们可以发现,数据结构问题的解题思路常常涉及到算法的设计和实现。
数据结构10年考研试题及答案(整理)
![数据结构10年考研试题及答案(整理)](https://img.taocdn.com/s3/m/75dd4c6a561252d380eb6e30.png)
数据结构考试重点及部分答案自己做的答案不是很正确如果有问题请联系后面的大题不知道原题,所以不知道怎么做见谅!!!题型和分值选择题:15*2=30填空题:10*2=20解答题:5*4=20算法阅读题:5*4=20算法设计题:101 栈的进栈、出栈函数顺序,求一个表达式的顺序eg:进栈顺序是123 计算POP(S)+2 POP(S) =3+2*2=72 给定二叉排序树的数据求平均查找长度Eg:已知长度为9的表{16 ,3 ,7 ,11 ,9 ,26,18,14,15},建立二叉顺序树后进行查找,则等概率的情况下查找成功的平均查找长度为()二叉排序树(Binary Sort Tree)又称二叉查找树。
它或者是一棵空树;或者是具有下列性质的二叉树:(1)若左子树不空,则左子树上所有结点的值均小于它的根结点的值;(2)若右子树不空,则右子树上所有结点的值均大于它的根结点的值;(3)左、右子树也分别为二叉排序树;根据上述性质,按照给出的表,建立的树如下图:(旁边的数表示查找长度)平均查找长度为:(1+2+2+3+3+4+5+5+6)/9 = 31/93树的概念树是n(n>=0)个结点的有限集4 二重循环的平均时间复杂度的求解(使用嵌套、统计次数)时间复杂度:该算法的运行时间与问题规模的对应关系,时间复杂度用T(n)=O(f(n))来表示Eg:S=0for(i=1;i<=n;i++)for(j=1;j<=m;j++)s=s+1答案为0(n*m)求解算法复杂度时:1、首先确定核心操作。
很显然此算法中,核心的操作是s=s+1;2.这个算法中,存在两重循环。
第一重循环n次,第二重循环m次,总共执行核心操作n*m次。
3.确定此算法的时间复杂度为:O (n*m)若复杂度为 O (n*n),则算法可以是如下的样子:S=0for(i=1;i<=n;i++)for(j=1;j<=n;j++)s=s+15 单链表中R是P的前驱,在P Q之间插入S,则则如何插入(语句表示)在相邻元素R、P之间插入一个值为X的数据元素的基本操作步骤:(1)生成一个数据域值为X的结点S(2)使X结点的指针域指向结点P:S->next=P->next(3)修改R结点的指针域指向结点X:P->next=S6 已知顺序表,求查找X的平均查找长度(n+1)/27栈的插入和删除的位置栈顶8 已知入队序列求出队序列原则:先进先出9 在图中,所有度数和等于边的几倍两倍10 邻接矩阵中行和列分别表示什么意思无向图邻接矩阵的第i行(或第i列)非零元素的个数正好是第i个顶点的度。
考研数据结构试题及答案
![考研数据结构试题及答案](https://img.taocdn.com/s3/m/057b5f7eae45b307e87101f69e3143323968f523.png)
考研数据结构试题及答案一、选择题(每题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. 描述排序算法中的稳定性和不稳定性,并给出一个稳定性排序算法的例子。
答案:稳定性排序算法是指在排序过程中,相等的元素的相对顺序不会改变。
不稳定性排序算法则可能改变相等元素的相对顺序。
数据结构考研真题及其答案
![数据结构考研真题及其答案](https://img.taocdn.com/s3/m/76d84e8f112de2bd960590c69ec3d5bbfc0ada01.png)
数据结构考研真题及其答案数据结构是计算机科学与技术专业考研中的重要科目之一,它对于培养学生的程序设计和算法分析能力具有关键作用。
以下将为大家呈现一些典型的数据结构考研真题,并提供详细的答案解析。
一、选择题1、若一个栈的输入序列为 1, 2, 3, 4, 5,不可能得到的输出序列是()A 2, 3, 4, 1, 5B 5, 4, 3, 2, 1C 1, 5, 4, 3, 2D 3, 4, 2, 5, 1答案:C解析:栈的特点是“后进先出”。
对于选项 C,先输出 1,意味着 2、3、4、5 都已入栈,此时栈顶元素为 5,不可能接着输出 5 之后就输出4。
2、已知一棵二叉树的先序遍历序列为 ABCDEFG,中序遍历序列为 CBDAEGF,则其后序遍历序列为()A CDBAFGEB CDBGFEAC CDBAGFED BCDAFGE答案:B解析:先根据先序和中序遍历序列构建二叉树。
先序遍历中第一个节点 A 为根节点,在中序遍历中找到 A,其左边的 CBD 为左子树,右边的 EGF 为右子树。
同样的方法确定左子树和右子树的结构。
然后按照“左子树右子树根节点”的顺序得到后序遍历序列 CDBGFEA。
3、对于一个具有 n 个顶点的无向图,若采用邻接矩阵表示,则该矩阵的非零元素个数为()A n(n 1) / 2B n(n + 1) / 2C n(n 1)D n(n + 1)答案:A解析:无向图的邻接矩阵是对称的。
对于顶点 i 和 j(i ≠ j),若它们之间有边,则矩阵中对应位置为 1,共有 n(n 1) / 2 对不同的顶点对,所以非零元素个数为 n(n 1) / 2 。
二、简答题1、简述冒泡排序的基本思想,并分析其时间复杂度和空间复杂度。
答案:冒泡排序的基本思想是通过相邻元素的两两比较和交换,将最大(或最小)的元素逐步“浮”到数组的一端。
时间复杂度:在最坏情况下,即数组完全逆序,需要进行 n 1 轮比较,每轮比较 n i 次(i 为轮数,从 1 到 n 1),所以总的比较次数为n(n 1) / 2,时间复杂度为 O(n^2)。
考研数据结构试题(含答案)
![考研数据结构试题(含答案)](https://img.taocdn.com/s3/m/5bf5af6203768e9951e79b89680203d8cf2f6a5b.png)
考研数据结构试题(含答案)我以⼀名⼤学⽣的⼈格尊严保证,在本场考试中,⾃觉遵守考试纪律,服从考试管理,决不作弊或帮助别⼈作弊!签名:学院专业学号级班··················密···················封·····················线··················命题⼈签字:系主任签字:审核院长签字:共印份数:第1页共6页聊城⼤学计算机学院2012—2013学年第1学期期末考试2011级《数据结构》试题(闭卷B卷)⼀、单项选择题(共15题,每题2分,共30分)1.研究数据结构就是研究(D )。
A.数据的逻辑结构B.数据的存储结构C.数据的逻辑结构和存储结构D.数据的逻辑结构、存储结构及其基本操作2.在数据结构中,从逻辑上可以把数据结构分为(C )。
A.动态结构和静态结构B.紧凑结构和⾮紧凑结构C.线性结构和⾮线性结构D.内部结构和外部结构3.算法分析的两个主要⽅⾯是(A )。
A.空间复杂度和时间复杂度B.正确性和简单性C.可读性和⽂档性D.数据复杂性和程序复杂性4.下⾯程序段的时间复杂度是( C )。
《数据结构》历年考研真题及解答
![《数据结构》历年考研真题及解答](https://img.taocdn.com/s3/m/b763f36be45c3b3567ec8b28.png)
《数据结构》考研真题及解答目录2009 年试题 (1)填空题 (1)解答题 (2)2010 年试题 (2)填空题 (2)解答题 (4)2011 年试题 (4)填空题 (4)解答题 (5)2012 年试题 (6)填空题 (6)解答题 (7)2013 年试题 (8)填空题 (8)解答题 (9)2014 年试题 (10)填空题 (10)解答题 (11)2015 年试题 (12)填空题 (12)解答题 (14)2009 年试题填空题1.为解决计算机与打印机之间速度不匹配的问题,通常设置一个打印数据缓冲区,主机将要输出的数据依次写入该缓冲区,而打印机则依次从该缓冲区中取出数据。
该缓冲区的逻辑结构应该是A.栈B.队列C.树D.图2.设栈 S 和队列 Q 的初始状态均为空,元素 abcdefg 依次进入栈 S。
若每个元素出栈后立即进入队列 Q,且7 个元素出队的顺序是 bdcfeag,则栈 S 的容量至少是A.1 B.2 C.3 D.43.给定二叉树图所示。
设 N 代表二叉树的根,L代表根结点的左子树,R代表根结点的右子树。
若遍历后的结点序列为 3,1,7,5,6,2,4,则其遍历方式是A.LRN B.NRL C.RLN D.RNL4.下列二叉排序树中,满足平衡二叉树定义的是5.已知一棵完全二叉树的第 6 层(设根为第 1 层)有8 个叶结点,则完全二叉树的结点个数最多是A.39 B.52 C.111 D.1196.将森林转换为对应的二叉树,若在二叉树中,结点u 是结点v 的父结点的父结点,则在原来的森林中,u 和v 可能具有的关系是I.父子关系II.兄弟关系III.u 的父结点与v 的父结点是兄弟关系A.只有IIB.I 和IIC.I 和IIID.I、II 和III7.下列关于无向连通图特性的叙述中,正确的是I.所有顶点的度之和为偶数II.边数大于顶点个数减1 III.至少有一个顶点的度为1A.只有IB.只有IIC.I 和IID.I 和III8.下列叙述中,不符合 m 阶B 树定义要求的是A.根节点最多有m 棵子树 B.所有叶结点都在同一层上C.各结点内关键字均升序或降序排列 D.叶结点之间通过指针链接9.已知关键序列 5,8,12,19,28,20,15,22 是小根堆(最小堆),插入关键字 3,调整后得到的小根堆是A.3,5,12,8,28,20,15,22,19B.3,5,12,19,20,15,22,8,28C.3,8,12,5,20,15,22,28,19D.3,12,5,8,28,20,15,22,1910.若数据元素序列 11,12,13,7,8,9,23,4,5 是采用下列排序方法之一得到的第二趟排序后的结果,则该排序算法只能是A.起泡排序 B.插入排序 C.选择排序 D.二路归并排序解答题41.(10 分)带权图(权值非负,表示边连接的两顶点间的距离)的最短路径问题是找出从初始顶点到目标顶点之间的一条最短路径。
数据结构试题及答案考研
![数据结构试题及答案考研](https://img.taocdn.com/s3/m/553ff903ac02de80d4d8d15abe23482fb4da0299.png)
数据结构试题及答案考研试题:一、单项选择题(每题2分,共10分)1. 在数据结构中,下列哪个概念是为了解决动态数据存储问题而提出的?()A. 栈B. 队列C. 链表D. 数组2. 对于长度为n的有序数组,使用二分查找法查找一个元素的平均时间复杂度是()A. O(n)B. O(n^2)C. O(log n)D. O(1)3. 在图的遍历算法中,深度优先搜索(DFS)使用的数据结构是()A. 栈B. 队列C. 链表D. 数组4. 哈希表的冲突可以通过多种方式解决,其中不是常用的方法是()A. 开放寻址法B. 链地址法C. 线性探测法D. 跳房子法5. 下列数据结构中,哪个不是树形结构?()A. 堆B. 二叉搜索树C. 哈夫曼树D. 邻接矩阵二、简答题(每题5分,共20分)1. 请简述什么是堆栈,并说明它们在计算机科学中的重要性。
2. 描述一下什么是平衡二叉树,并解释为什么它在数据库索引中非常有用。
3. 解释一下什么是图的最小生成树,并给出Prim算法的基本思想。
4. 什么是哈希表?为什么哈希表在解决冲突时需要一个好的哈希函数?三、算法设计题(每题15分,共30分)1. 给定一个整数数组,请设计一个算法找出数组中的最长递增子序列。
请给出算法的基本思想,并说明其时间复杂度。
2. 请设计一个算法,实现两个链表是否相交的检测。
如果相交,请返回交点的节点;如果不相交,返回null。
请给出算法的基本思想,并说明其时间复杂度。
四、综合题(共40分)1. 给定一个字符串,请实现一个函数,该函数可以计算出该字符串中所有子字符串的频率。
要求使用哈希表来存储子字符串及其频率。
请描述算法的步骤,并分析其时间复杂度和空间复杂度。
(20分)2. 请解释什么是B树,并说明为什么B树在数据库系统中被广泛使用。
(20分)答案:一、单项选择题1. C(链表)2. C(O(log n))3. A(栈)4. D(跳房子法)5. D(邻接矩阵)二、简答题1. 堆栈是一种特殊的数据结构,遵循后进先出(LIFO)原则。
数据结构考研真题和答案
![数据结构考研真题和答案](https://img.taocdn.com/s3/m/27049288561252d381eb6eca.png)
一、选择题1. 算法的计算量的大小称为计算的(B )。
【北京邮电大学2000 二、3 (20/8分)】A.效率 B. 复杂性 C. 现实性 D. 难度2. 算法的时间复杂度取决于(C )【中科院计算所1998 二、1 (2分)】A.问题的规模 B. 待处理数据的初态 C. A和B3.计算机算法指的是(C),它必须具备(B)这三个特性。
(1) A.计算方法 B. 排序方法 C. 解决问题的步骤序列D. 调度方法(2) A.可执行性、可移植性、可扩充性B. 可执行性、确定性、有穷性C. 确定性、有穷性、稳定性D. 易读性、稳定性、安全性【南京理工大学1999 一、1(2分)【武汉交通科技大学1996 一、1(4分)】4.一个算法应该是(B )。
【中山大学1998 二、1(2分)】A.程序B.问题求解步骤的描述C.要满足五个基本特性D.A和C.5. 下面关于算法说法错误的是( D )【南京理工大学2000 一、1(1.5分)】A.算法最终必须由计算机程序实现B.为解决某问题的算法同为该问题编写的程序含义是相同的C. 算法的可行性是指指令不能有二义性D. 以上几个都是错误的6. 下面说法错误的是( C )【南京理工大学2000 一、2 (1.5分)】(1)算法原地工作的含义是指不需要任何额外的辅助空间(2)在相同的规模n下,复杂度O(n)的算法在时间上总是优于复杂度O(2n)的算法(3)所谓时间复杂度是指最坏情况下,估算算法执行时间的一个上界(4)同一个算法,实现语言的级别越高,执行效率就越低4 A.(1) B.(1),(2) C.(1),(4) D.(3)7.从逻辑上可以把数据结构分为( C )两大类。
【武汉交通科技大学1996 一、4(2分)】A.动态结构、静态结构B.顺序结构、链式结构C.线性结构、非线性结构D.初等结构、构造型结构8.以下与数据的存储结构无关的术语是( D )。
【北方交通大学2000二、1(2分)】A.循环队列 B. 链表 C. 哈希表 D.栈9.以下数据结构中,哪一个是线性结构(D )?【北方交通大学2001 一、1(2分)】A.广义表 B. 二叉树 C. 稀疏矩阵 D. 串10.以下那一个术语与数据的存储结构无关?( A )【北方交通大学2001 一、2(2分)】A.栈 B. 哈希表 C. 线索树 D. 双向链表11.在下面的程序段中,对x的赋值语句的频度为(C )【北京工商大学2001 一、10(3分)】FOR i:=1 TO n DOFOR j:=1 TO n DOx:=x+1;A.O(2n) B.O(n) C.O(n2) D.O(log2n)12.程序段FOR i:=n-1 DOWNTO 1 DOFOR j:=1 TO i DOIF A[j]>A[j+1]THEN A[j]与A[j+1]对换;其中n为正整数,则最后一行的语句频度在最坏情况下是(D )A. O(n)B. O(nlogn)C. O(n3)D. O(n2) 【南京理工大学1998一、1(2分)】13.以下哪个数据结构不是多型数据类型( D )【中山大学1999 一、3(1分)】A.栈B.广义表C.有向图D.字符串14.以下数据结构中,( A )是非线性数据结构【中山大学1999 一、4】A.树B.字符串C.队D.栈15. 下列数据中,(C)是非线性数据结构。
考研数据结构习题及参考答案
![考研数据结构习题及参考答案](https://img.taocdn.com/s3/m/68d6c98659f5f61fb7360b4c2e3f5727a5e9242c.png)
考研数据结构习题及参考答案数据结构作为计算机科学与技术的重要基础课程,对于考研的学生来说十分重要。
以下是一些考研数据结构习题及其参考答案,希望对考生复习备考有所帮助。
1. 题目:请编写一个函数,判断一个给定的字符串是否是回文字符串。
解答:回文字符串是指正序和逆序读都一样的字符串。
我们可以使用两个指针从字符串的两端向中间遍历,判断对应字符是否相等。
若存在不相等的字符,则不是回文字符串。
```javapublic boolean isPalindrome(String s) {int i = 0, j = s.length() - 1;while (i < j) {if (s.charAt(i) != s.charAt(j)) {return false;}i++;j--;}return true;}```2. 题目:请编写一个函数,将给定的字符串反转。
解答:反转字符串可以使用两个指针,一个指向字符串的开头,一个指向字符串的末尾,交换两个指针所对应的字符,并依次向中间移动指针。
```pythondef reverseString(s):chars = list(s)i, j = 0, len(chars) - 1while i < j:chars[i], chars[j] = chars[j], chars[i]i += 1j -= 1return ''.join(chars)```3. 题目:请编写一个函数,实现队列(Queue)的基本操作,包括入队、出队以及判断队列是否为空。
解答:队列是一种先进先出(FIFO)的数据结构,可以使用一个列表来实现。
入队操作可以通过在列表末尾添加元素实现,出队操作可以通过弹出列表头部元素实现,判断队列是否为空可以判断列表的长度是否为0。
```javaclass Queue {private List<Integer> queue;public Queue() {queue = new ArrayList<>();}public void enqueue(int x) {queue.add(x);}public int dequeue() {if (isEmpty()) {throw new NoSuchElementException();}return queue.remove(0);}public boolean isEmpty() {return queue.isEmpty();}}```4. 题目:请编写一个函数,实现栈(Stack)的基本操作,包括入栈、出栈以及获取栈顶元素。
数据结构考研真题及解答
![数据结构考研真题及解答](https://img.taocdn.com/s3/m/04caca7dddccda38366baf02.png)
《数据结构》考研真题及解答目录2009年试题 (1)填空题 (1)解答题 (2)2010年试题 (2)填空题 (2)解答题 (4)2011年试题 (4)填空题 (4)解答题 (5)2012年试题 (6)填空题 (6)解答题 (7)2013年试题 (8)填空题 (8)解答题 (9)2014年试题 (10)填空题 (10)解答题 (11)2015年试题 (12)填空题 (12)解答题 (14)2009年试题填空题1.为解决计算机与打印机之间速度不匹配的问题,通常设置一个打印数据缓冲区,主机将要输出的数据依次写入该缓冲区,而打印机则依次从该缓冲区中取出数据。
该缓冲区的逻辑结构应该是A.栈B.队列C.树D.图2.设栈S和队列Q的初始状态均为空,元素abcdefg依次进入栈S。
若每个元素出栈后立即进入队列Q,且7个元素出队的顺序是bdcfeag,则栈S的容量至少是A.1 B.2 C.3 D.43.给定二叉树图所示。
设N代表二叉树的根,L代表根结点的左子树,R代表根结点的右子树。
若遍历后的结点序列为3,1,7,5,6,2,4,则其遍历方式是A.LRN B.NRL C.RLN D.RNL4.下列二叉排序树中,满足平衡二叉树定义的是5.已知一棵完全二叉树的第6层(设根为第1层)有8个叶结点,则完全二叉树的结点个数最多是A.39 B.52 C.111 D.1196.将森林转换为对应的二叉树,若在二叉树中,结点u是结点v的父结点的父结点,则在原来的森林中,u和v可能具有的关系是I.父子关系 II.兄弟关系 III.u的父结点与v的父结点是兄弟关系A.只有IIB.I和IIC.I和IIID.I、II和III7.下列关于无向连通图特性的叙述中,正确的是I.所有顶点的度之和为偶数 II.边数大于顶点个数减1 III.至少有一个顶点的度为1A.只有IB.只有IIC.I和IID.I和III8.下列叙述中,不符合m阶B树定义要求的是A.根节点最多有m棵子树 B.所有叶结点都在同一层上C.各结点内关键字均升序或降序排列 D.叶结点之间通过指针链接9.已知关键序列5,8,12,19,28,20,15,22是小根堆(最小堆),插入关键字3,调整后得到的小根堆是A.3,5,12,8,28,20,15,22,19B.3,5,12,19,20,15,22,8,28C.3,8,12,5,20,15,22,28,19D.3,12,5,8,28,20,15,22,1910.若数据元素序列11,12,13,7,8,9,23,4,5是采用下列排序方法之一得到的第二趟排序后的结果,则该排序算法只能是A.起泡排序 B.插入排序 C.选择排序 D.二路归并排序解答题41.(10分)带权图(权值非负,表示边连接的两顶点间的距离)的最短路径问题是找出从初始顶点到目标顶点之间的一条最短路径。
考研数据结构测试题及答案
![考研数据结构测试题及答案](https://img.taocdn.com/s3/m/27688fccdc88d0d233d4b14e852458fb770b388d.png)
考研数据结构测试题及答案### 考研数据结构测试题及答案#### 一、选择题1. 在数据结构中,以下哪种结构不是线性结构?A. 栈B. 队列C. 树D. 图答案:C2. 一个长度为n的有序数组,使用二分查找算法查找一个元素,最多需要比较几次?A. nB. log₂nC. n/2D. nlog₂n答案:B3. 以下哪个是链表的优点?A. 随机访问B. 插入和删除不需要移动元素C. 存储空间利用率高D. 所有都是答案:B#### 二、简答题1. 简述堆栈(Stack)的基本操作,并说明它们的特点。
答案:堆栈的基本操作包括:- Push:向栈顶添加一个元素。
- Pop:移除栈顶的元素,并返回该元素。
- Peek/Top:查看栈顶元素,但不移除它。
- IsEmpty:判断栈是否为空。
特点:- 遵循后进先出(LIFO)原则。
- 插入和删除操作都在栈顶进行,时间复杂度为O(1)。
2. 描述二叉搜索树(BST)的插入操作。
答案:二叉搜索树的插入操作如下:1. 从根节点开始,如果待插入节点的值小于当前节点的值,则移动到左子树。
2. 如果待插入节点的值大于当前节点的值,则移动到右子树。
3. 重复步骤1和2,直到找到一个空位置,将新节点插入。
4. 如果新节点的值等于当前节点的值,根据具体实现,可以选择不插入或覆盖现有节点。
#### 三、编程题1. 编写一个函数,实现单链表的反转。
```cstruct ListNode {int val;struct ListNode *next;};void reverseList(struct ListNode head) {struct ListNode *prev = NULL, *curr = *head, *next = NULL;while (curr != NULL) {next = curr->next;curr->next = prev;prev = curr;curr = next;}*head = prev;}```2. 给定一个整数数组,编写一个函数,找出数组中最长的连续子数组的长度。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、选择题1. 算法的计算量的大小称为计算的( B )。
【邮电大学2000 二、3 (20/8分)】A.效率 B. 复杂性 C. 现实性 D. 难度2. 算法的时间复杂度取决于(C )【中科院计算所 1998 二、1 (2分)】A.问题的规模 B. 待处理数据的初态 C. A和B3.计算机算法指的是(C),它必须具备(B)这三个特性。
(1) A.计算方法 B. 排序方法 C. 解决问题的步骤序列D. 调度方法(2) A.可执行性、可移植性、可扩充性 B. 可执行性、确定性、有穷性C. 确定性、有穷性、稳定性D. 易读性、稳定性、安全性【理工大学 1999 一、1(2分)【交通科技大学 1996 一、1( 4分)】4.一个算法应该是( B )。
【大学 1998 二、1(2分)】A.程序 B.问题求解步骤的描述 C.要满足五个基本特性D.A和C.5. 下面关于算法说法错误的是( D )【理工大学 2000 一、1(1.5分)】A.算法最终必须由计算机程序实现B.为解决某问题的算法同为该问题编写的程序含义是相同的C. 算法的可行性是指指令不能有二义性D. 以上几个都是错误的6. 下面说法错误的是( C )【理工大学 2000 一、2 (1.5分)】(1)算法原地工作的含义是指不需要任何额外的辅助空间(2)在相同的规模n下,复杂度O(n)的算法在时间上总是优于复杂度O(2n)的算法(3)所谓时间复杂度是指最坏情况下,估算算法执行时间的一个上界(4)同一个算法,实现语言的级别越高,执行效率就越低4A.(1) B.(1),(2) C.(1),(4) D.(3)7.从逻辑上可以把数据结构分为( C )两大类。
【交通科技大学 1996 一、4(2分)】A.动态结构、静态结构 B.顺序结构、链式结构C.线性结构、非线性结构 D.初等结构、构造型结构8.以下与数据的存储结构无关的术语是( D )。
【北方交通大学 2000 二、1(2分)】A.循环队列 B. 链表 C. 哈希表 D.栈9.以下数据结构中,哪一个是线性结构( D )?【北方交通大学 2001 一、1(2分)】A.广义表 B. 二叉树 C. 稀疏矩阵 D. 串10.以下那一个术语与数据的存储结构无关?( A )【北方交通大学 2001 一、2(2分)】A.栈 B. 哈希表 C. 线索树 D. 双向链表11.在下面的程序段中,对x的赋值语句的频度为(C )【工商大学 2001 一、10(3分)】FOR i:=1 TO n DOFOR j:=1 TO n DOx:=x+1;A. O(2n) B.O(n) C.O(n2) D.O(log2n) 12.程序段 FOR i:=n-1 DOWNTO 1 DOFOR j:=1 TO i DOIF A[j]>A[j+1]THEN A[j]与A[j+1]对换;其中 n为正整数,则最后一行的语句频度在最坏情况下是( D )A. O(n)B. O(nlogn)C. O(n3)D. O(n2) 【理工大学1998一、1(2分)】13.以下哪个数据结构不是多型数据类型( D )【大学 1999 一、3(1分)】A.栈 B.广义表 C.有向图 D.字符串14.以下数据结构中,( A )是非线性数据结构【大学 1999 一、4】A.树 B.字符串 C.队 D.栈15. 下列数据中,( C)是非线性数据结构。
【理工大学 2001 六、1(2分)】A.栈 B. 队列 C. 完全二叉树 D. 堆16.连续存储设计时,存储单元的地址( A )。
【大学 1999 一、1(1分)】A.一定连续 B.一定不连续 C.不一定连续 D.部分连续,部分不连续17.以下属于逻辑结构的是( C )。
【电子科技大学应用 2001一、1】A.顺序表 B. 哈希表 C.有序表 D. 单链表二、判断题1. 数据元素是数据的最小单位。
( X )【邮电大学 1998 一、1(2分)】【大学 2000 一、1 (1分)】【交通大学 1998 一、1】【师大学 2001 一、1 (2分)】2. 记录是数据处理的最小单位。
( X ) 【海运学院 1998 一、5(1分)】3. 数据的逻辑结构是指数据的各数据项之间的逻辑关系;(X )【邮电大学2002 一、1(1分)】4.算法的优劣与算法描述语言无关,但与所用计算机有关。
( X )【海事大学 2001 一、10(1分)】5.健壮的算法不会因非法的输入数据而出现莫名其妙的状态。
( O )【海事大学 2001 一、11(1分)】6.算法可以用不同的语言描述,如果用C 语言或PASCAL语言等高级语言来描述,则算法实际上就是程序了。
( X )【交通大学 1996 二、7(3分)】7.程序一定是算法。
( X )【燕山大学 1998 二、2(2分)并改错】8.数据的物理结构是指数据在计算机的实际存储形式。
( O )【师大学2001 一、2(2分)】9. 数据结构的抽象操作的定义与具体实现有关。
( X )【华南理工大学 2002 一、1(1分)】10. 在顺序存储结构中,有时也存储数据结构中元素之间的关系。
( X )【华南理工大学 2002 一、2 (1分)】11. 顺序存储方式的优点是存储密度大,且插入、删除运算效率高。
( X )【海运学院 1999 一、1(1分)】12. 数据结构的基本操作的设置的最重要的准则是,实现应用程序与存储结构的独立。
( O)【华南理工大学 2002 一、5(1分)】13. 数据的逻辑结构说明数据元素之间的顺序关系,它依赖于计算机的储存结构. ( X )【海运学院 1998 一、1(1分)】三、填空1.数据的物理结构包括数据元素的表示和数据元素间关系的表示。
【燕山大学 1998 一、1(2分)】2. 对于给定的n个元素,可以构造出的逻辑结构有集合线性结构树形结构图状结构(或网状结构)四种。
【中科院计算所 1999 二、1(4分)】3.数据的逻辑结构是指数据的组织形式,即数据元素之间逻辑关系的总体。
而逻辑关系是指数据元素之间的关联方式或称“邻接关系”。
【邮电大学2001 二、1(2分)】4.一个数据结构在计算机中表示(又称映像)称为存储结构。
【华中理工大学 2000 一、1(1分)】5.抽象数据类型的定义仅取决于它的一组逻辑特性,而与在计算机部如何表示和实现无关,即不论其部结构如何变化,只要它的数学特性不变,都不影响其外部使用。
【大学 2001 三、3(2分)】6.数据结构中评价算法的两个重要指标是算法的时间复杂度和空间复杂度【理工大学 2001 七、1(2分)】7. 数据结构是研讨数据的_逻辑结构和物理结构,以及它们之间的相互关系,并对与这种结构定义相应的操作(运算),设计出相应的算法。
【电子科技大学 1998 二、2(3分)】8.一个算法具有5个特性: (1)有穷性(2)确定性(3)可行性,有零个或多个输入、有一个或多个输出。
【华中理工大学 2000 一、2(5分)】【燕山大学 1998 一、2(5分)】9.已知如下程序段FOR i:= n DOWNTO 1 DO {语句1}BEGINx:=x+1;{语句2}FOR j:=n DOWNTO i DO {语句3}y:=y+1; {语句4}END;语句1执行的频度为n+1;语句2执行的频度为n;语句3执行的频度为n(n+3)/2;语句4执行的频度为n(n+1)/2。
【北方交通大学 1999 二、4(5分)】10.在下面的程序段中,对x的赋值语句的频度为1+(1+2++(1+2+3)+…+(1+2+…+n)=n(n+1)(n+2)/6 O(n3)(表示为n的函数)FOR i:=1 TO n DOFOR j:=1TO i DOFOR k:=1 TO j DOx:=x+delta;【工业大学 1999 一、6(2分)】11.下面程序段中带下划线的语句的执行次数的数量级是:log2n【工业大学1999三、1(2分)i:=1; WHILE i<n DO i:=i*2;12. 下面程序段中带下划线的语句的执行次数的数量级是( nlog2n )。
【工业大学 2000 三、1(2分)】i:=1;WHILE i<n BEGIN FOR j:=1 TO n DO x:=x+1;i:=i*2 END;13. 下面程序段中带有下划线的语句的执行次数的数量级是(log2n2 )【工业大学 2001 三、1(2分)】i:=n*n WHILE i<>1 DO i:=i div 2;14. 计算机执行下面的语句时,语句s的执行次数为(n+3)(n-2)/2。
【理工大学2000二、1(1.5分)】FOR(i=l;i<n-l;i++)FOR(j=n;j>=i;j--)s;15. 下面程序段的时间复杂度为___ O(n)_____。
(n>1)sum=1;for (i=0;sum<n;i++) sum+=1; 【理工大学 2001 二、1(2分)】16.设m.n均为自然数,m可表示为一些不超过n的自然数之和,f(m,n)为这种表示方式的数目。
例f(5,3)=5,有5种表示方式:3+2,3+1+1,2+2+1,2+1+1+1,1+1+1+1+1。
①以下是该函数的程序段,请将未完成的部分填入,使之完整int f(m,n)int m,n;{ if(m==1)return 1;if(n==1){return 1;}if(m<n){return f(m,m);}if (m==n){return 1+f(m,n-1);}return f(m.n-1)+f(m-n,n);}②执行程序,f(6,4)= 9。
【中科院软件所 1997 二、1 (9分)】17. 在有n个选手参加的单循环赛中,总共将进行n(n-1)/2场比赛。
【工业大学1999三、8(2分)】四、应用题1. 数据结构是一门研究什么容的学科?【燕山大学 1999 二、1 (4分)】数据结构是一门研究在非数值计算的程序设计问题中,计算机的操作对象及对象间的关系和施加于对象的操作等的学科。
2. 数据元素之间的关系在计算机中有几种表示方法?各有什么特点?【燕山大学1999 二、2(4分)】四种表示方法(1)顺序存储方式。
数据元素顺序存放,每个存储结点只含一个元素。
存储位置反映数据元素间的逻辑关系。
存储密度大,但有些操作(如插入、删除)效率较差。
(2)链式存储方式。
每个存储结点除包含数据元素信息外还包含一组(至少一个)指针。
指针反映数据元素间的逻辑关系。
这种方式不要求存储空间连续,便于动态操作(如插入、删除等),但存储空间开销大(用于指针),另外不能折半查找等。