西安理工考研数据结构初试题
数据结构c语言版考研试题及答案
数据结构c语言版考研试题及答案# 数据结构C语言版考研试题及答案## 试题### 一、选择题(每题2分,共20分)1. 在数据结构中,线性表的顺序存储结构通常使用什么数据结构来实现?A. 栈B. 队列C. 数组D. 树2. 以下哪个算法不是排序算法?A. 冒泡排序B. 选择排序C. 快速排序D. 哈希算法3. 在二叉树中,若某节点的左子树只包含左子节点,右子树为空,则该二叉树是:A. 满二叉树B. 完全二叉树C. 斜树D. 二叉搜索树4. 哈希表的冲突可以通过哪些方法解决?A. 链地址法B. 开放地址法C. 再哈希法D. 所有以上5. 以下哪个不是图的遍历算法?A. 深度优先搜索(DFS)B. 广度优先搜索(BFS)C. 欧拉路径D. 归并排序### 二、简答题(每题10分,共30分)1. 请简述链表和数组的区别。
2. 解释什么是二叉搜索树,并简述其基本操作。
3. 描述图的邻接矩阵表示法和邻接表表示法的优缺点。
### 三、编程题(每题25分,共50分)1. 编写一个C语言函数,实现单链表的反转。
2. 编写一个C语言程序,实现二叉搜索树的插入操作。
## 答案### 一、选择题1. C 数组2. D 哈希算法3. C 斜树4. D 所有以上5. D 归并排序### 二、简答题1. 链表和数组的区别:- 存储方式:数组是连续的内存空间,链表是分散的。
- 空间使用:数组在定义时需要指定大小,链表可以动态扩展。
- 访问速度:数组支持随机访问,链表只能顺序访问。
2. 二叉搜索树:- 定义:每个节点的值大于其左子树所有节点的值,小于其右子树所有节点的值。
- 基本操作:插入、删除、查找。
3. 图的表示法:- 邻接矩阵:使用二维数组表示,容易实现,但空间消耗大。
- 邻接表:使用链表表示,空间利用率高,但遍历效率低。
### 三、编程题1. 单链表反转函数:```ctypedef struct Node {int data;struct Node *next;} Node;void reverseList(Node head) {Node *prev = NULL, *curr = *head, *next = NULL;while (curr != NULL) {next = curr->next;curr->next = prev;prev = curr;curr = next;}*head = prev;}```2. 二叉搜索树插入程序:```ctypedef struct BSTNode {int data;struct BSTNode *left, *right;} BSTNode;BSTNode* insert(BSTNode* node, int data) {if (node == NULL) {node = (BSTNode*)malloc(sizeof(BSTNode));node->data = data;node->left = node->right = NULL;} else if (data < node->data) {insert(node->left, data);} else {insert(node->right, data);}return node;}```请注意,以上代码仅为示例,实际编程时需要考虑更多的细节和错误处理。
计算机数据结构考研真题及其答案
计算机数据结构考研真题及其答案-CAL-FENGHAI-(2020YEAR-YICAI)_JINGBIAN第1章绪论一、选择题1. 算法的计算量的大小称为计算的();A.效率 B. 复杂性 C. 现实性 D. 难度2. 算法的时间复杂度取决于();A.问题的规模 B. 待处理数据的初态 C. A和B3.计算机算法指的是(),它必须具备()这三个特性; (1)A.计算方法 B. 排序方法 C. 解决问题的步骤序列 D. 调度方法(2)A.可执行性、可移植性、可扩充性 B. 可执行性、确定性、有穷性C. 确定性、有穷性、稳定性D. 易读性、稳定性、安全性4.一个算法应该是();A.程序 B.问题求解步骤的描述 C.要满足五个基本特性D.A和C5. 下面关于算法说法错误的是();A.算法最终必须由计算机程序实现B.为解决某问题的算法同为该问题编写的程序含义是相同的C. 算法的可行性是指指令不能有二义性D. 以上几个都是错误的6. 下面说法错误的是();(1)算法原地工作的含义是指不需要任何额外的辅助空间;(2)在相同的规模n下,复杂度O(n)的算法在时间上总是优于复杂度O(2n)的算法;(3)所谓时间复杂度是指最坏情况下,估2算算法执行时间的一个上界;(4)同一个算法,实现语言的级别越高,执行效率就越低A.(1) B.(1),(2) C.(1),(4) D.(3)7.从逻辑上可以把数据结构分为()两大类;A.动态结构、静态结构 B.顺序结构、链式结构C.线性结构、非线性结构 D.初等结构、构造型结构8.以下与数据的存储结构无关的术语是();A.循环队列 B. 链表 C. 哈希表D. 栈9.以下数据结构中,哪一个是线性结构();A.广义表 B. 二叉树 C. 稀疏矩阵D. 串10.以下那一个术语与数据的存储结构无关();A.栈 B. 哈希表 C. 线索树 D. 双向链表11.在下面的程序段中,对x的赋值语句的频度为();3FOR i:=1 TO n DOFOR j:=1 TO n DOx:=x+1;A. O(2n) B.O(n) C.O(n2)n)D.O(log212.程序段 FOR i:=n-1 DOWNTO 1 DOFOR j:=1 TO i DOIF A[j]>A[j+1]THEN A[j]与A[j+1]对换;其中 n为正整数,则最后一行的语句频度在最坏情况下是();A. O(n)B. O(nlogn)C. O(n3)D. O(n2)13.以下哪个数据结构不是多型数据类型();A.栈 B.广义表 C.有向图 D.字符串14.以下数据结构中,()是非线性数据结构;A.树 B.字符串 C.队 D.栈15. 下列数据中,()是非线性数据结构;A.栈 B. 队列 C. 完全二叉树 D. 堆16.连续存储设计时,存储单元的地址();A.一定连续 B.一定不连续 C.不一定连续 D.部分连续,部分不连续417.以下属于逻辑结构的是();A.顺序表 B. 哈希表 C.有序表 D. 单链表二、判断题1. 数据元素是数据的最小单位。
数据结构c考研试题及答案
数据结构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 给定一个二叉搜索树的根节点,请实现一个函数,返回树中任意两个节点的值的差的绝对值的最小值。
数据结构试题集(含答案)
第一章概论一、选择题1、研究数据结构就是研究( D )。
A. 数据的逻辑结构B. 数据的存储结构C. 数据的逻辑结构和存储结构D. 数据的逻辑结构、存储结构及其基本操作2、算法分析的两个主要方面是(A)。
A. 空间复杂度和时间复杂度B. 正确性和简单性C. 可读性和文档性D. 数据复杂性和程序复杂性3、具有线性结构的数据结构是( D )。
A. 图B. 树C. 广义表D. 栈4、计算机中的算法指的是解决某一个问题的有限运算序列,它必须具备输入、输出、(B)等5个特性。
A. 可执行性、可移植性和可扩充性B. 可执行性、有穷性和确定性C. 确定性、有穷性和稳定性D. 易读性、稳定性和确定性5、下面程序段的时间复杂度是(C)。
for(i=0;i<m;i++)for(j=0;j<n;j++)a[i][j]=i*j;A. O(m2)B. O(n2)C. O(m*n)D. O(m+n)6、算法是( D )。
A. 计算机程序B. 解决问题的计算方法C. 排序算法D. 解决问题的有限运算序列7、某算法的语句执行频度为(3n+nlog2n+n2+8),其时间复杂度表示( C )。
A. O(n)B. O(nlog2n) C. O(n2) D. O(log2n)8、下面程序段的时间复杂度为( C )。
i=1;while(i<=n)i=i*3;A. O(n)B. O(3n)C. O(log3n) D. O(n3)9、数据结构是一门研究非数值计算的程序设计问题中计算机的数据元素以及它们之间的( B )和运算等的学科。
A. 结构B. 关系C. 运算D. 算法10、下面程序段的时间复杂度是( C )。
i=s=0;while(s<n){i++;s+=i;}A. O(n)B. O(n2)C. O(√n)D. O(n3)11、抽象数据类型的三个组成部分分别为( A )。
A. 数据对象、数据关系和基本操作B. 数据元素、逻辑结构和存储结构C. 数据项、数据元素和数据类型D. 数据元素、数据结构和数据类型12、通常从正确性、易读性、健壮性、高效性等4个方面评价算法的质量,以下解释错误的是( A )。
数据结构 排序 历年考研练习题库 试卷及答案
数据结构排序历年考研练习题库试卷及答案数据结构排序历年考研练习题库试卷及答案一、冒泡排序冒泡排序是一种基本的排序算法,它通过重复地交换相邻两个元素的位置来实现排序。
算法的基本思想是从待排序的元素中比较相邻的两个元素大小,并根据需要交换它们的位置,直到整个序列有序为止。
冒泡排序的原理如下:首先从序列的第一个元素开始,比较相邻的两个元素的大小,若前面的元素大于后面的元素,则交换它们的位置;否则,继续比较下一对相邻元素,直到比较到序列的最后一个元素。
这样一趟比较下来,序列中最大的元素就会被交换到最后一个位置。
接着,对序列中剩下的 n-1 个元素重复上述过程,执行 n-1 趟比较,直到整个序列有序。
在实践中,冒泡排序的时间复杂度为 O(n^2),其中 n 为待排序序列的长度。
尽管冒泡排序存在其它更好的排序算法,但它具有编码简单、实现容易以及对小规模数据排序的优势。
二、选择排序选择排序也是一种简单直观的排序算法,它的思想是将待排序序列分为已排好序的部分和未排序的部分,每次选取未排序部分中最小(或最大)的元素,将其放置在已排好序的部分的末尾。
重复此过程,直到整个序列有序。
选择排序的具体步骤如下:首先从待排序序列中找到最小(或最大)的元素,然后将其与序列的第一个元素交换位置,将该元素视为已排序部分;接着,在剩下的未排序部分中找到最小(或最大)的元素,将其与第二个元素交换位置,将该元素视为已排序部分的最后一个元素;以此类推,每次选择序列中最小(或最大)的元素,并将该元素放置在已排序部分的末尾。
最终完成排序。
选择排序的时间复杂度同样为 O(n^2),其中 n 为待排序序列的长度。
相比于冒泡排序,选择排序的交换操作较少,因此在实际应用中,选择排序的性能要优于冒泡排序。
三、插入排序插入排序是一种简单直观的排序算法,它的基本思想是将待排序的元素逐个插入已排好序的部分中,直到整个序列有序。
与冒泡排序和选择排序不同,插入排序是一种原地排序算法。
数据结构的考研题库及答案
数据结构的考研题库及答案数据结构是计算机科学中非常重要的一门学科,它研究的是如何组织和管理数据以及数据之间的关系。
对于考研学生来说,数据结构是一个必考的科目,因此熟悉考研题库及答案对于备考非常重要。
一、数据结构的考研题库数据结构的考研题库通常包含选择题和填空题两种类型。
选择题是通过给定的选项选择正确答案,而填空题则需要考生填写正确的答案。
在选择题中,常见的考点包括线性表、栈和队列、树和二叉树、图等。
例如,考生可能会遇到如下题目:下列关于栈的说法中,错误的是(A)栈是一种先进后出的数据结构(B)栈的插入操作称为入栈(C)栈的删除操作称为出栈(D)栈的插入和删除操作都在栈顶进行。
正确答案是(A)栈是一种先进后出的数据结构。
填空题则更加注重对知识点的理解和应用。
例如,考生可能会遇到如下题目:设有一个长度为n的线性表L,其中元素按非递增顺序排列。
设计一个算法,删除线性表中所有值相同的元素,要求时间复杂度为O(n)。
正确答案是:从前向后扫描线性表,用一个变量count记录不同元素的个数,然后将不同的元素依次放到线性表的前count个位置。
二、数据结构的考研答案对于考生来说,除了了解考研题库外,掌握正确的答案也是备考的重要一环。
在选择题中,正确答案通常是通过对题目进行分析和推理得出的。
考生需要仔细阅读题目,理解题意,然后根据自己对知识点的掌握程度选择正确答案。
在填空题中,考生需要根据题目要求,运用所学的知识点进行分析和解答。
对于一些较难的填空题,考生可以通过构造示例或者推导过程来得到答案。
除了了解答案外,考生还需要掌握解题的方法和技巧。
对于选择题,考生可以通过排除法和对选项进行比较来确定正确答案。
对于填空题,考生可以根据题目给出的条件和要求,运用相应的算法和数据结构进行求解。
三、备考数据结构的建议备考数据结构,考生需要系统地学习相关的知识点,并进行大量的练习和总结。
以下是一些建议:1. 系统学习:根据教材或者相关资料,系统地学习数据结构的基本概念、常见算法和数据结构的实现方法等。
《数据结构C语言》考研复习题库
《数据结构C语言》考研复习题库一、选择题1、在一个具有 n 个单元的顺序栈中,假定以地址低端(即 0 单元)作为栈底,以 top 作为栈顶指针,当做出栈处理时,top 变化为()。
A top 不变B top = 0C topD top++答案:C解释:在顺序栈中,出栈操作会使栈顶指针 top 减 1,即 top。
2、一个队列的入队序列是 1,2,3,4,则队列的输出序列是()。
A 4,3,2,1B 1,2,3,4C 1,4,3,2D 3,2,4,1答案:B解释:队列是先进先出的数据结构,入队顺序为 1,2,3,4,那么出队顺序也为 1,2,3,4。
3、串是一种特殊的线性表,其特殊性体现在()。
A 可以顺序存储B 数据元素是一个字符C 可以链式存储D 数据元素可以是多个字符答案:B解释:串的数据元素是字符,这是它与一般线性表的区别。
4、设有一个 10 阶的对称矩阵 A,采用压缩存储方式,以行序为主存储,a11 为第一元素,其存储地址为 1,每个元素占一个地址空间,则 a85 的地址为()。
A 33B 32C 18D 40答案:A解释:对于对称矩阵,只存储其下三角或上三角部分。
对于一个 n阶对称矩阵,若以行序为主存储下三角部分,aij 的存储位置为 i(i 1)/2 + j 1。
所以 a85 的地址为 8(8 1)/2 + 5 1 = 33。
5、一棵完全二叉树共有 700 个结点,则在该二叉树中有()个叶子结点。
A 350B 349C 351D 不确定答案:C解释:根据完全二叉树的性质,度为 1 的结点个数最多为 1 个。
设n0 为叶子结点个数,n1 为度为 1 的结点个数,n2 为度为 2 的结点个数。
则 n = n0 + n1 + n2 ,n 1 = 2n2 + n1 。
因为 n = 700 ,且 n1 为 0或 1 ,通过计算可得 n0 = 351 。
二、填空题1、数据的逻辑结构被分为_____、_____、_____和_____四种。
数据结构考研真题及其答案_研究生入学考试_高等教育_教育专区 数据结
数据结构考研真题及其答案_研究生入学考试_高等教育_教育专区数据结结考研真题及其答案据结构是计算机科学中重要的一门课程,它研究的是如何组织和管理数据的方式。
对于计算机专业的研究生来说,数据结构是必修课程,考研真题的复习和备考对于学生来说是非常重要的。
在本文中,我们将介绍一些数据结构考研真题及其答案,帮助学生更好地复习和备考。
第一题:给出以下数据结构中各个操作的时间复杂度:数组、链表、堆、栈、队列。
答案:数组的插入和删除操作的时间复杂度为O(n),查找操作的时间复杂度为O(1);链表的插入和删除操作的时间复杂度为O(1),查找操作的时间复杂度为O(n);堆的插入、删除和查找操作的时间复杂度都为O(logn);栈的插入、删除和查找操作的时间复杂度都为O(1);队列的插入、删除和查找操作的时间复杂度都为O(1)。
第二题:给出以下数据结构的特点:栈、队列、堆、二叉树、图。
答案:栈是一种后进先出(LIFO)的数据结构,只能在一端进行插入和删除操作;队列是一种先进先出(FIFO)的数据结构,插入操作在一端进行,删除操作在另一端进行;堆是一种完全二叉树,具有父节点的值大于等于子节点的值(大顶堆)或父节点的值小于等于子节点的值(小顶堆)的性质;二叉树是一种每个节点最多有两个子节点的树;图是由节点和连接节点的边组成的数据结构。
第三题:给定一个有序数组,要求在其中查找一个元素的位置并返回,如果找不到则返回-1,设计一个算法实现上述功能。
答案:可以使用二分查找算法来实现上述功能。
首先,将要查找的元素与有序数组的中间元素进行比较,如果相等,则返回中间元素的位置;如果要查找的元素小于中间元素,则在数组的前半部分继续进行二分查找;如果要查找的元素大于中间元素,则在数组的后半部分继续进行二分查找。
重复这个过程,直到找到要查找的元素或者确定元素不存在为止。
第四题:给出以下排序算法的时间复杂度:冒泡排序、插入排序、选择排序、快速排序、归并排序。
计算机考研数据结构试卷一(练习题含答案)
数据结构试卷 1一、单选题1. 栈和队列的共同特点是 ()。
A.只允许在端点处插入和删除元素B.都是先进后出C.都是先进先出D.没有共同点2.用链接方式存储的队列,在进行插入运算时 ( ).A.仅修改头指针B.头、尾指针都要修改C.仅修改尾指针D.头、尾指针可能都要修改3.以下数据结构中哪一个是非线性结构? ( )A. 队列B. 栈C. 线性表D. 二叉树4.设有一个二维数组 A[m][ n],假设 A[0][0] 存放位置在644(10),A[2][2] 存放位置在 676(10),每个元素占一个空间,问A[3][3] (10)存放在什么位置?脚注 (10)表示用10进制表示。
A.688B. 678C.692D.6965.树最适合用来表示 () 。
A.有序数据元素B.无序数据元素C.元素之间具有分支层次关系的数据D.元素之间无联系的数据6.二叉树的第 k 层的结点数最多为 ( ).A.2k-1B.2K+1 C.2K-1 D. 2 k-17. 若有 18 个元素的有序表存放在一维数组A[19] 中,第一个元素放 A[1] 中,现进行二分查找,则查找 A [3]的比较序列的下标依次为 ()A. 1,2,3B. 9,5,2,3C. 9,5,3D. 9,4,2,38.对 n 个记录的文件进行快速排序,所需要的辅助存储空间大致为A. 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 的元素有()个,A.1B.2C.3D.410.设有 6个结点的无向图,该图至少应有 ()条边才能确保是一个连通图。
A.5B.6C.7D.8二、填空题1.通常从四个方面评价算法的质量:_________、 _________、 _________和_________。
2.一个算法的时间复杂度为 (n3+n2log2n+14n)/n2,其数量级表示为 ________。
(完整版)数据结构练习题及参考答案
数据结构练习题第一部分绪论一、单选题1. 一个数组元素a[i]与________的表示等价。
A、 *(a+i)B、 a+iC、 *a+iD、 &a+i2. 对于两个函数,若函数名相同,但只是____________不同则不是重载函数。
A、参数类型B、参数个数C、函数类型3. 若需要利用形参直接访问实参,则应把形参变量说明为________参数A、指针B、引用C、值4. 下面程序段的时间复杂度为____________。
for(int i=0; i<m; i++)for(int j=0; j<n; j++)a[i][j]=i*j;A、 O(m2)B、 O(n2)C、 O(m*n)D、 O(m+n)5. 执行下面程序段时,执行S语句的次数为____________。
for(int i=1; i<=n; i++)for(int j=1; j<=i; j++)S;A、 n2B、 n2/2C、 n(n+1)D、 n(n+1)/26. 下面算法的时间复杂度为____________。
int f( unsigned int n ) {if ( n==0 || n==1 ) return 1; else return n*f(n-1);}A、 O(1)B、 O(n)C、 O(n2)D、 O(n!)二、填空题1. 数据的逻辑结构被分为__________、_________、__________和__________四种。
2. 数据的存储结构被分为__________、_________、__________和__________四种。
3. 在线性结构、树形结构和图形结构中,前驱和后继结点之间分别存在着________、________和________的联系。
4. 一种抽象数据类型包括__________和__________两个部分。
5. 当一个形参类型的长度较大时,应最好说明为_________,以节省参数值的传输时间和存储参数的空间。
《数据结构》历年考研真题及解答
《数据结构》考研真题及解答目录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 分)带权图(权值非负,表示边连接的两顶点间的距离)的最短路径问题是找出从初始顶点到目标顶点之间的一条最短路径。
西安理工考研数据结构初试题
西安理⼯考研数据结构初试题西安理⼯⼤学2016年攻读硕⼠学位研究⽣⼊学考命题纸考试科⽬:数据结构863⼀、单项选择题(共30分,每⼩题2分)1、考虑将栈定义为顺序存储的栈还是链式存储的栈,是在选择数据的( d )。
a.逻辑结构b.物理结构c.相互关系d.操作⽅法2、在⼀个长度为n的顺序线性表中顺序査找值为x的元素时,查找成功时的平均查找长度为( c )(假定找每个元素的概率都相等)a.nb.(n+1)/2c.n/2d.(n-1)/23、组成数据的基本单位是( c )。
a.数据项b.数据类型c.数据元素d.数据变量4、设数据结构A=(D,R),其中D={1,2,3,4},R={r},r={<1,2>,<2,3>,<2,4>,<4,1>},则数据结构A是( c )。
a.线性结构b树型结构 c.图型结构 d.集合5、深度为K(K>=1)的⼆叉树⾄多有(c)个结点。
a.2k+1b.2k-1c.2k-1d.2k-16、设某完全⽆向图中有n个顶点,则该完全⽆向图中有(a)条边。
a.n(n-1)/2b.n(n-1)c.n2d.n2-17、⼆叉链表作为⼆叉树的存储结构,在具有n(n>0)个结点的⼆叉链表中空链域的个数为( c )a.2n-1b. n-1c. n+1d.2n+18、已知⼀个有向图的邻接矩阵,要想删除所有以第i个点为起始点的弧,应该(c)a.删除邻接矩阵的第i⾏b.除邻接矩阵的第i列c.将邻接矩阵的第i⾏置零d.将邻接矩阵的第i列置零9、设⽆向图G中有n个点e条边,则其对应的邻接表中的表头结点和表结点的个数分别为(d)。
课本164页a. n, eb.e,nc. 2n, ed.n,2e10、设某强通图中有n个顶点,则该强道通图中⾄少有(c)条边。
a. n(n-1)b. n+1c. nd. n(n+1)11、下列四种排序中( a )的空间复杂度最⼤。
考研数据结构 第一章答案
第1章绪论答案二、判断题三.填空题1.数据元素数据元素间关系 2.集合线性结构树形结构图状结构或网状结构。
3.数据的组织形式,即数据元素之间逻辑关系的总体。
而逻辑关系是指数据元素之间的关联方式或称“邻接关系”。
4.表示(又称映像)。
5.(1)逻辑特性(2)在计算机内部如何表示和实现(3)数学特性。
6.算法的时间复杂度和空间复杂度。
7.(1)逻辑结构(2)物理结构(3)操作(运算)(4)算法。
8.(1)有穷性(2)确定性(3)可行性。
9.(1)n+1 (2)n (3)n(n+3)/2 (4)n(n+1)/2。
10.1+(1+2++(1+2+3)+…+(1+2+…+n)=n(n+1)(n+2)/6 O(n3)11. log2n 12. nlog2n 13. log2n2 14. (n+3)(n-2)/2 15. O(n)16.① (1)1 (2)1 (3)f(m,n-1) (4)n ② 9 17. n(n-1)/2四.应用题1.数据结构是一门研究在非数值计算的程序设计问题中,计算机的操作对象及对象间的关系和施加于对象的操作等的学科。
2.四种表示方法(1)顺序存储方式。
数据元素顺序存放,每个存储结点只含一个元素。
存储位置反映数据元素间的逻辑关系。
存储密度大,但有些操作(如插入、删除)效率较差。
(2)链式存储方式。
每个存储结点除包含数据元素信息外还包含一组(至少一个)指针。
指针反映数据元素间的逻辑关系。
这种方式不要求存储空间连续,便于动态操作(如插入、删除等),但存储空间开销大(用于指针),另外不能折半查找等。
(3)索引存储方式。
除数据元素存储在一地址连续的内存空间外,尚需建立一个索引表,索引表中索引指示存储结点的存储位置(下标)或存储区间端点(下标),兼有静态和动态特性。
(4)散列存储方式。
通过散列函数和解决冲突的方法,将关键字散列在连续的有限的地址空间内,并将散列函数的值解释成关键字所在元素的存储地址,这种存储方式称为散列存储。
2020年智慧树知道网课《数据结构(西安理工大学)》课后章节测试满分答案
第一章测试1【单选题】(2分)研究数据结构就是研究()。
A.数据的逻辑结构B.数据的逻辑结构、存储结构及其数据在运算上的实现C.数据的逻辑结构和存储结构D.数据的存储结构2【单选题】(2分)关于算法的说法,的是()。
A.算法的可行性是指指令不能有二义性B.其他三项都是的C.为解决某问题的算法和为该问题编写的程序含义是相同的D.算法最终必须由计算机程序实现3【单选题】(2分)数据的()包括集合、线性、树和图4种基本类型。
A.基本运算B.算法描述C.存储结构D.逻辑结构4【单选题】(2分)数据的存储结构包括顺序、链式、散列和()4种基本类型。
A.数组B.向量C.集合D.索引5【单选题】(2分)下面算法的时间复杂度为()。
for(i=0;i<m;i++)for(j=0;j<n;j++)A[i][j]=i*j;A.O(m2)B.O(m+n)C.O(m×n)D.O(n2)6【多选题】(2分)以下()属于设计一个“好”的算法应考虑达到的目标。
A.健壮性B.效率与低存储量要求C.可读性D.正确性7【多选题】(2分)依据所有数据成员之间的逻辑关系的不同,数据结构分为()。
A.线性结构B.物理结构C.非线性结构D.逻辑结构8【判断题】(2分)在存储数据时,不仅要考虑存储各数据元素的值,而且还要存储数据元素之间的关系。
A.对B.错9【判断题】(2分)在逻辑结构定义的操作与具体实现有关。
A.对B.错10【判断题】(2分)算法是对解题方法和步骤的描述。
A.对B.错11【判断题】(2分)算法分析的两个主要方面是时间复杂度和空间复杂度的分析。
A.错B.对第二章测试1【单选题】(2分)线性表是()。
A.一个无限序列,可以为空。
B.一个无限序列,不能为空。
C.一个有限序列,可以为空。
D.一个有限序列,不能为空。
2【单选题】(2分)若某线性表中最常用的操作是取第i个元素和查找第i个元素的前驱,则采用()存储方法最节省时间。
西安理工大学研究生《数值分析》复习题
1 1 1 2 1 3 1 x1 1 x 六 求解矛盾方程组 2 5 2 2 1 x3 2 3 1 5
七 已知初值问题 y ax b, y(0) 0 有精确解 y ( x)
2 1 5 10.设 A 3 1 4 ,则 || A ||1 2 7 8 2 x1 2 x2 3x3 12 二 给定线性方程组 4 x1 2 x2 x3 12 x 2 x 3x 16 2 3 1
1. 用列主元消元法求解所给线性方程组。 2. 写出 Gauss-Seidel 迭代格式,并分析该迭代格式是否收敛。 三 设 M 2 Span 1, x 四 对于积分
. 试在 M
2
2
中求 f ( x) | x | 在区间 [1,1] 上的最佳平方逼近元。
1
0
1 1 4 f ( x)dx ,若取节点 x0 , x1 , x2 , 试推导一个插值型求积公式,并用这个公式求 5 2 5
e
0
1
x
dx 的值。
五 给定方程 x Lnx 2 0 (1)分析该方程存在几个根,找出每个根所在的区间; (2)构造求近似根的迭代公式,并证明所用的迭代公式是收敛的。 六 已知观测数据(1,-5) , (2,0) , (4,5) , (5,6) ,试用最小二乘法求形如 ( x) ax 七 已知初值问题 y ax b, y(0) 0 有精确解 y ( x)
x4 y4 . .
y m0 m1 m2 m3 m4 则可利用 插值,其插值多项式的次方为 3 2 4.设 f(x)=3x +2x +1,则差商 f [0,1,2,3,4]=
2022年西安理工大学计算机科学与技术专业《数据结构与算法》科目期末试卷A(有答案)
2022年西安理工大学计算机科学与技术专业《数据结构与算法》科目期末试卷A(有答案)一、选择题1、若需在O(nlog2n)的时间内完成对数组的排序,且要求排序是稳定的,则可选择的排序方法是()。
A.快速排序B.堆排序C.归并排序D.直接插入排序2、将两个各有N个元素的有序表归并成一个有序表,其最少的比较次数是()。
A.NB.2N-1C.2ND.N-13、静态链表中指针表示的是()。
A.下一元素的地址B.内存储器的地址C.下一元素在数组中的位置D.左链或右链指向的元素的地址4、下面关于串的叙述中,不正确的是()。
A.串是字符的有限序列B.空串是由空格构成的串C.模式匹配是串的一种重要运算D.串既可以采用顺序存储,也可以采用链式存储5、循环队列A[0..m-1]存放其元素值,用front和rear分别表示队头和队尾,则当前队列中的元素数是()。
A.(rear-front+m)%mB.rear-front+1C.rear-front-1D.rear-front6、若一棵二叉树的前序遍历序列为a,e,b,d,c,后序遍历序列为b, c,d,e,a,则根结点的孩子结点()。
A.只有e B.有e、b C.有e、c D.无法确定7、下列选项中,不能构成折半查找中关键字比较序列的是()。
A.500,200,450,180 B.500,450,200,180C.180,500,200,450 D.180,200,500,4508、有关二叉树下列说法正确的是()。
A.二叉树的度为2B.一棵二叉树的度可以小于2C.二叉树中至少有一个结点的度为2D.二叉树中任何一个结点的度都为29、一棵非空的二叉树的前序序列和后序序列正好相反,则该二叉树一定满足()。
A.其中任意一个结点均无左孩子B.其中任意一个结点均无右孩子C.其中只有一个叶结点D.其中度为2的结点最多为一个10、数据序列(8,9,10,4,5,6,20,1,2)只能是下列排序算法中的()的两趟排序后的结果。
863数据结构
西安理工大学计算机科学与工程学院硕士研究生入学考试课程《数据结构》考试大纲科目代码:863科目名称:数据结构第一部分考试说明一、考试性质数据结构是计算机各专业的专业基础课。
考核目标是测试计算机科学与技术及相近各专业的本科毕业生对于该课程的知识掌握程度,以保证被录取者具有本学科基本的专业理论基础及程序设计能力,以利于计算机科学与技术及软件工程学科的导师择优选拔硕士研究生。
考试对象为参加全国硕士研究生入学考试的本科毕业生和具有同等学力的在职人员。
二、考试范围各种基本类型的数据结构的概念、特征、操作、存储表示和基本应用;各种基本查找表的概念、特征及其查找方法;基本的内排序方法及其应用;用C语言(或C++)进行算法描述,并对算法进行分析。
三、评价目标考查基本概念、基本知识、基本方法的基础上,注重考查学生运用基本知识来分析和解决实际问题的能力,注重考查算法和程序设计的能力。
具体要求见本考试大纲第二部分的“考查要点”。
四、考试形式与试卷结构1.答卷方式:闭卷,笔试。
2.答题时间:180 分钟。
3.考查内容及其考查比例基本概念、基本知识、基本方法约占50%~60%;综合应用、算法和程序设计与算法分析约占50%~40%。
4.试卷结构与考试题型试卷共150分,基本的考试题型有:(1)单项选择题和多项选择题(基本概念);(2)填空题(基本知识、基本方法);(3)简答题(概念理解);(4)应用题(基本方法的应用);(5)算法和程序设计题;五、教材和参考书教材: 《数据结构》(C语言版),严蔚敏、吴伟民编著,清华大学出版社,2009.6第二部分考查要点1.数据结构基本概念和术语1)了解数据元素、数据结构、抽象数据类型、存储结构等概念;了解算法概念及算法设计的基本要求;2)掌握算法分析方法、语句的频度和估算时间复杂度、空间复杂度分析方法。
2.线性表1)理解线性表的定义和基本操作;线性表的抽象数据类型定义;2)掌握线性表的顺序存储结构及应用方法;3)掌握线性表的链式存储结构(单链表,双链表,循环链表)。
考研资料数据结构练习题1
练习题:一、填空题1、______是数据的最小单位,_________是讨论数据结构时涉及的最小数据单位。
2、设一棵完全二叉树具有50个结点,则此完全二叉树有个度为2的结点。
3、在用于表示有向图的邻接矩阵中,对第i列的元素进行累加,可得到第i个顶点的______度。
4、已知一棵度为3的树有2个度为1的结点,3个度为2的结点,4个度为3的结点,则该树中有____________ 个叶子的结点。
5、有一个长度为20的有序表采用二分查找方法进行查找,共有______个元素的查找长度为3。
6、对于双向链表,在两个结点之间插入一个新结点需要修改的指针共______个。
删除一个结点需要修改的指针共__________个。
7、已知广义表LS=(a,(b,c,d),e),它的深度是__________,长度是__________。
8、循环队列的引入是为了克服__________。
9、表达式a*(b+c)-d/f的后缀表达式是________________。
10、数据结构中评价算法的两个重要指标是。
11、设r指向单链表的最后一个结点,要在最后一个结点之后插入s所指的结点,需执行的三条语句是___________;r=s; r->next=null;。
12、设有一个空栈,栈顶指针为1000H(十六进制),现有输入序列为a,b,c,d,e,经过PUSH,PUSH,POP,PUSH,POP,PUSH,PUSH之后,输出序列是_______,而栈顶指针值是_______H。
设栈为顺序栈,每个元素占4个字节。
13、模式串P=‘abaabcac’的next函数值序列为________。
14、任意连通图的连通分量只有一个,即是。
15、栈的特性是。
16、串的长度是。
17、如果一个有向图中没有______,则该图的全部顶点可能排成一个拓扑序列。
18、在具有n个叶子结点的哈夫曼树中,分支结点总数为。
19、在线性表的散列存储中,装填因子α又称为装填系数,若用m表示散列表的长度,n表示待散列存储的元素的个数,则α等于________。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
西安理工大学
2016年攻读硕士学位研究生入学考命题纸
考试科目:数据结构863
一、单项选择题(共30分,每小题2分)
1、考虑将栈定义为顺序存储的栈还是链式存储的栈,是在选择数据的( d )。
a.逻辑结构
b.物理结构
c.相互关系
d.操作方法
2、在一个长度为n的顺序线性表中顺序査找值为x的元素时,查找成功时的平均查找长度为( c )(假定找每个元素的概率都相等)
a.n
b.(n+1)/2
c.n/2
d.(n-1)/2
3、组成数据的基本单位是( c )。
a.数据项
b.数据类型
c.数据元素
d.数据变量
4、设数据结构A=(D,R),其中D={1,2,3,4},R={r},r={<1,2>,<2,3>,<2,4>,
<4,1>},则数据结构A是( c )。
a.线性结构b树型结构 c.图型结构 d.集合
5、深度为K(K>=1)的二叉树至多有(c)个结点。
a.2k+1
b.2k-1
c.2k-1
d.2k-1
6、设某完全无向图中有n个顶点,则该完全无向图中有(a)条边。
a.n(n-1)/2
b.n(n-1)
c.n2
d.n2-1
7、二叉链表作为二叉树的存储结构,在具有n(n>0)个结点的二叉链表中空链域的个数为( c )
a.2n-1
b. n-1
c. n+1
d.2n+1
8、已知一个有向图的邻接矩阵,要想删除所有以第i个点为起始点的弧,应该(c)
a.删除邻接矩阵的第i行
b.除邻接矩阵的第i列
c.将邻接矩阵的第i行置零
d.将邻接矩阵的第i列置零
9、设无向图G中有n个点e条边,则其对应的邻接表中的表头结点和表结点的个数分别为(d)。
课本164页
a. n, e
b.e,n
c. 2n, e
d.n,2e
10、设某强通图中有n个顶点,则该强道通图中至少有(c)条边。
a. n(n-1)
b. n+1
c. n
d. n(n+1)
11、下列四种排序中( a )的空间复杂度最大。
a.快速排序
b.冒泡排序
c.希尔排序
d.堆
12、设某二叉树中度数为0的结点数为N0,度数为1的结点数为N1,度数为2的结点数为N2,则下列等式成立的是( c)课本117性质3
a. N0=N1+1
b. N0=N1+N2
c. N0=N2+1
d. N0=2N1+1
13、若要求算法的时间复杂度为O( nlogn),且要求排序是稳定的,则可选择的排序方法
是(c)课本264表9.1
a.快速排序
b.堆排序
c.归并排序
d.直接插入排序
14、设一个有序的单链表中有n个结点,现要求插入一个新结点后使得单链表仍然保持有序,则该操作的时间复杂度为(d)
a.O(1og2n)
b.O(1)
c.O(n2)
d. O(n)
15、设有序表中有1000个元素,则用二分查找査找元素X最多需要比较(b)次。
a.25
b.10
c.7
d.1
二、判断題(正确的画“√”,错误的画“×”)(共30分,每小题2分)
1、算法和程序没有区别,所以在数据结构中二者是通用的。
(×)
2、对于一棵二叉树,任意给定先序序列、中序序列和后序序列中的两个,都能够唯确定出该二叉树的形状。
(×)
3、顺序存储结构只能存储线性结构,链式存储结构只能存储非线性结构。
(×)
4、中序遍历二叉排序树一定可以得到一个有序的序列。
(√)
5、对于图结构,调用一次深度优先遍历可以访问到图中的所有顶点。
(×)
6、带权无向图的最小生成树是唯一的。
(×)
7、完全二叉树一定是满二叉树,满二叉树不一定是完全二叉树。
(×)
8、存储无向图的邻接矩阵不一定是对称的。
(×)
9、折半插入排序的排序时间代价与初始数据无关。
(×)
10、连通分量是无向图中的极小连通子图。
(√)
11、折半查找只能在有序的顺序表上进行。
(√)
12、理想情况下,在散列表上搜索一个元素的时间复杂度为O(1)。
(√)
13、线性表的顺序存储结构比链式存储结构更好。
(×)
14、最小生成树就是指图的边数最少的生成树。
(×)
15、度不大于二的树就是二叉树。
(×)
三、填空题(共30分,每空2分)
1、数据结构是指(数据元素的集合)及其相互之间的关系。
2、在顺序存储的队列中,为了解决(假溢出)问题引入了循环队列。
课本74页
3、数据结构研究数据的逻辑结构、数据的存储结构和(数据的物理结构)三方面的问题。
4、当线性表的元素总数基本稳定,且很少进行插入和別除操作,应采用(顺序)存储结构。
5、设有一个顺序栈S,元素s1,s2,s3,s4,s5,s6依次进栈,如果6个元素的出栈顺序为s2,s3,s4,s6,s5,s1,则顺序栈的容量至少应为(3)。
6、普里姆算法的时间复杂度为(O(n2)),与网中的边数无关,因此求边稠密的网的最小生成树更加适合。
课本181页
7、在图的广度优先搜算法中用到了(队列)数据结构。
课本175页
8、在有n个叶子结点的哈夫曼( Huffman)树中,结点总数是(2n-1)。
9、设顺序线性表中有n个数据元素,则第i个位置上插入一个数据元素需要移动表中
(n-i+1)个数据元素;删除第主i个位置上的数据元素需要移动表中(n-i)个元素。
课本25和27页
10、已知一棵二叉树的中序遍历序列为BCAED、后序遍历序列为CBEDA,其先序遍
历的序列为(ABCDE)。
11、在有序表(12,24,36,48,60,72,84)中二分査找关键字72时所需进行的关键字比较次数为(2)。
12、设一组初始记录关键字序列为(20,18,22,16,30,19),则根据这些初始关键字序列建成的初始堆为()。
13、设有向图G的存储结构用邻接矩阵A来表示,则A中第i行中所有非零元素个数
之和等于顶点i的(出度),第i列中所有非零元素个数之和等于顶点i的(入度)。
四、简答题(共30分,每小题5分)
1、设一组初始记录关键字集合为(25,10,8,66,27,32,46),散列表的长度为8,散列函数H(k)=kmod7,要求分别用线性探测再散列和链地址法作为解决冲突的方法设计哈希表,并给出在等概率查找情况下,两种哈希表的平均查找长度。
2、从空树起,依次插入关键字40,23,12,8,90,15,62,95,70,32,13,构造一棵二叉排序树。
(1)画出该二叉排序树。
(2)画出删去该树中元素值为23的结点之后的二叉排序树。
3.假设用于通讯的电文由,9个字母{A,B,C,D,E,F,G,H,I}组成,各字母在电文中出现的概率分别为0.06,0.19,0.09,0.10,0.08,0.14,0.20,0.03,0.11,试为这9个字母设计哈夫曼树,并写出对应的哈夫曼编码。
设频率小的在结点的左边,频率大的在结点的右边。
4.已知树如图1所示,
(1)写出该树的后序遍历序列
(2)画山由该树转换得到的二叉树。
5、有如图2所示的二叉树,试画出中序线索二叉树,写出该线索二叉树的链式存储结点结构,并画出其中序线索链表结构。
图2
6、已知一个图的顶点集V和边集E分别为:
V={1,2,3,4,5,6,7};
E={(1,2)3,(1,3)5,(1,4)8,(2,5)10,(2,3)6,(3,4)15,(3,5)12,(3,6)9,(4,6)4,(4,7)20,(5,6)18,(6,7)25};
给出用克鲁斯卡尔算法构造最小生成树的过程,写出在最小生成树中依次得到的各条边。
五、算法设计题(共30分,每小题10分)
用C或Pascal(类C和类Pascal也可)完成以下题目。
要求写出实现算法的函数或过程即可,不必写出整个程序,对算法要加以适当的注解
1、已知带头结点的单链表L中的结点数据是整数且按值递增排列,设单链表结点类型定义如下。
typedef struct Node {
Datatype data;
Stret Node *next ;
} Lnode, *LinkList;
1)编写一个算法,将值为x的结点插入到表L中,使得L仍然有序。
2)编写一个算法,在该链表上实施查找数据值为key的査找运算,算法返回指向该结点的指针。
2、设有如下的二叉链表存储的二叉排序树,其结点类型定义为
typedef struct node
{
int data;
Struct node *lchild, *rchild;
} Bstree;
1)编写一个递归算法,统计二叉树t中叶子结点的个数。
2)编写一个递归算法,可以统计树的深度。
3、试写出冒泡排序算法将整型数组A[1….N]按从大到小的次序进行排序,要求排序过程中能够考虑没有达到既定循环次数,可以提前结束排序大循环的情况。