2008年西南大学837数据结构考研试题
数据结构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;}```请注意,以上代码仅为示例,实际编程时需要考虑更多的细节和错误处理。
(完整版)数据结构试题及答案
数据结构试卷(一)王彬一、单选题(每题2 分,共20分)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进制表示。
cA.688 B.678 C.692 D.6965.树最适合用来表示( )。
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]的比较序列的下标依次为( )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的元素有( c d)个,A.1 B.2 C.3 D.410.设有6个结点的无向图,该图至少应有( )条边才能确保是一个连通图。
A.5B.6C.7D.8二、填空题(每空1分,共26分)1.通常从四个方面评价算法的质量:____ ____、________、________和_______。
2.一个算法的时间复杂度为(n3+n2log2n+14n)/n2,其数量级表示为________。
数据结构考研试题.doc
[ 注] :编写程序可选用任一种高语言,算法描述可采用类语言,必要时加上注释一、回答下列问题: [20 分 ]1、算法的定义和性质2、为什么说数组与广义表是线性表的推广?3、什么是结构化程序设计?4、哈希方法的基本思想5、给出一不稳定排序方法名称与实例二、构造结果:[24分](1)确定 x:=x+1 语句在下面程序段中的频率,要求写出分析过程。
for i:=1 to n dofor j:=1 to I dofor k:=1 to j do x:=x+1(2)画出对长度为 8的有序表进行折半查找的判定树,并求其在等概率时查找成功的平均查找长度。
(3)已知一棵二叉树如右图,给出对这棵二叉树进行前序、中序、后序遍历的结果序列.(4)假设用于通讯的电文仅由8 个字母组成,字母在电文中出现的频率分别为{2 , 3, 5,7, 11, 4, 13, 15} ,试为这 8 个字母设计哈夫曼编码.( 5)在地址空间为0~15 的散列区中,对以下关键字序列构G 造哈希表,关键字序列为( Jan,Feb,Mar, Apr,May,Jun,Jul Aug,Sep,Oct,Nov,Dec ), H(x)=[i/2],其中i 为关键字中第一字母在字母表中的序号。
要求用线性探测开放定址法处理冲突,并求出在等概率情况下查找成功的平均查找长度。
(6)构造有 7 个元素组成的线性表一实例,是进行快速排序时比较次数最少的初始排序。
三、写一算法,完成对这棵二叉树的左右子树的交换,设二叉树以二叉链表作存储结构。
[15 分 ][15 分 ]四、编写一非递归算法,对一棵二叉排序树实现中序遍历。
五、编写程序,完成下列功能:[15 分 ]1.读入整数序列,以整数0 作为序列的结束标志(0 不作为序列元素),建立一个单链表。
2.实现单链表原地逆转,即单链表中结点指针方向反转,反转操作不使用额外的链表结点,可使用临时工作单元。
例:输入序列为:1, 8, 4,3, 0六、给出有向图 G 的邻接表表示。
2008年华南理工大学831计算机专业综合(数据结构、操作系统)考研试题
831华南理工大学2008年攻读硕士学位研究生入学考试试卷(请在答题纸上做答,试卷上做答无效,试后本卷必须与答题纸一同交回)科目名称:计算机专业综合(数据结构、操作系统)适用专业:系统分析与集成,计算机系统结构,计算机软件与理论,计算机应用技术,生物医学工程共 5 页数据结构部分一. 选择题(每题只有一个答案正确,每题2分,共24分)1.带头结点的单链表head 为空的判断条件是( )A .head= =NULLB .head —>next= =NULLC .head —>next==head D .head!=NULL 2.若进栈序列为a ,b ,c ,则通过入、出栈操作可能得到的a ,b ,c 的不同排列数是( )。
A .4B .5C .6D .7 3.下列说法正确的是( )。
A .二叉树中任何一个结点的度都为2B .二叉树的度为2C .一棵二叉树的度可小于2D .任何一棵二叉树中至少有一个结点的度为24.一棵有124个叶子结点的完全二叉树,最多有( )个结点。
A .247 B . 124 C .248 D . 1255.以下说法错误的是( )。
A .存在这样的二叉树,对其采用任何次序的遍历其结点访问序列均相同。
B .二叉树是树的特殊情形。
C .由树转换成二叉树,其根结点的右子树总是空的。
D 在二又树只有一棵子树的情况下,也要指出是左子树还是右子树 6.有拓扑排序的图—定是( )。
A 有环图B .无向图C .强连通图D .有向无环图供学习参考Q7.在待排序的元素序列基本有序的前提下,效率最高的排序方法是( )。
A .插入排序 B .选择排序 C .快速排序 D .归并排序8.从逻缉上可以把数据结构分为( )。
A .动态结构和静态结构 B .紧凑结构和非紧凑结构 C .线性结构和非线性结构 D .内部结构和外部结构9.下面程序的时间复杂度为( ). for 〔i=0;i <m ;i++)for (j=0:j <n ;j++) A[i][j]=i*j ;A .O(m )B .O(n )C .O(m ×n)D .O(m+n)2210. 三维数组A[4][5][6]按行优先存储方法存储在内存中,若每个元素占2个存储单元,且数组中第一个元素A[0][0][0]的存储地址为120,则元素A[3][4][5]存储地址为( )。
数据结构考研真题及其答案
数据结构考研真题及其答案一、协议关键信息1、真题及答案的来源:____________________________2、真题及答案的涵盖范围:____________________________3、真题及答案的使用限制:____________________________4、协议的有效期:____________________________5、保密条款的相关约定:____________________________6、违约责任的界定和处理方式:____________________________7、争议解决的途径和方式:____________________________二、协议具体内容11 定义和解释111 本协议中,“真题”指用于数据结构考研的相关试题。
112 “答案”指对应真题的正确解答和分析。
12 真题及答案的提供121 提供方应确保所提供的真题及答案真实、准确、完整,且符合考研的相关要求和标准。
122 真题及答案应涵盖指定的数据结构知识点和考点。
13 真题及答案的质量131 提供的真题应具有代表性、典型性和一定的难度梯度。
132 答案应详细、清晰,逻辑严谨,便于理解和学习。
14 真题及答案的使用限制141 接收方仅可将真题及答案用于个人考研复习使用,不得用于商业目的、传播给第三方或进行任何非法活动。
142 不得对真题及答案进行修改、篡改、复制、分发或公开发表。
15 协议的有效期151 本协议自双方签署之日起生效,有效期至具体日期。
152 在有效期内,双方应遵守协议的各项条款。
16 保密条款161 双方应对真题及答案的内容严格保密,不得向任何无关人员透露。
162 若因一方泄露导致不良后果,泄露方应承担相应的法律责任。
17 违约责任171 若提供方提供的真题及答案存在质量问题或不符合约定,应负责及时更正或补充。
172 若接收方违反使用限制或保密条款,应承担相应的赔偿责任,并停止违约行为。
《数据结构》考研辅导练习题答案
第1章绪论参考答案四、应用题1.(1)数据的逻辑结构反映数据元素之间的逻辑关系(即数据元素之间的关联方式或“邻接关系”),数据的存储结构是数据结构在计算机中的表示,包括数据元素的表示及其关系的表示。
数据的运算是对数据定义的一组操作,运算是定义在逻辑结构上的,和存储结构无关,而运算的实现则是依赖于存储结构。
(2)逻辑结构相同但存储不同,可以是不同的数据结构。
例如,线性表的逻辑结构属于线性结构,采用顺序存储结构为顺序表,而采用链式存储结构称为线性链表。
(3)栈和队列的逻辑结构相同,其存储表示也可相同(顺序存储和链式存储),但由于其运算集合不同而成为不同的数据结构。
(4)数据结构的评价非常复杂,可以考虑两个方面,一是所选数据结构是否准确、完整的刻划了问题的基本特征;二是是否容易实现(如对数据分解是否恰当;逻辑结构的选择是否适合于运算的功能,是否有利于运算的实现;基本运算的选择是否恰当。
)2.评价好的算法有四个方面。
一是算法的正确性;二是算法的易读性;三是算法的健壮性;四是算法的时空效率(运行)。
3.略4.“数据结构”这一术语有两种含义,一是作为一门课程的名称;二是作为一个科学的概念。
作为科学概念,目前尚无公认定义,一般认为,讨论数据结构要包括三个方面,一是数据的逻辑结构,二是数据的存储结构,三是对数据进行的操作(运算)。
而数据类型是值的集合和操作的集合,可以看作是已实现了的数据结构,后者是前者的一种简化情况。
5.(1)顺序存储方式。
数据元素顺序存放,每个存储结点只含一个元素。
存储位置反映数据元素间的逻辑关系。
存储密度大,但有些操作(如插入、删除)效率较差。
(2)链式存储方式。
每个存储结点除包含数据元素信息外还包含一组(至少一个)指针。
指针反映数据元素间的逻辑关系。
这种方式不要求存储空间连续,便于动态操作(如插入、删除等),但存储空间开销大(用于指针),另外不能折半查找等。
(3)索引存储方式。
除数据元素存储在一地址连续的内存空间外,尚需建立一个索引表,索引表中索引指示存储结点的存储位置(下标)或存储区间端点(下标),兼有静态和动态特性。
《数据结构》历年考研真题及解答
《数据结构》考研真题及解答目录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 分)带权图(权值非负,表示边连接的两顶点间的距离)的最短路径问题是找出从初始顶点到目标顶点之间的一条最短路径。
2008级数据结构考试试卷(A)
数据结构考试试卷(A)班级:_________学号__________姓名___________(注意:试卷满分100,时间100分钟,请考生将答案做于试卷答题纸上,违者零分论处)一、填空题(每个空格1分,共20分,错填或不填均无分)1、数据结构通常有四种基本的结构,分别是:()、()、()、()。
2、数据元素在计算机中的两种不同的存储结构:()和()。
3、在线性结构中,开始结点()前驱结点,其余每个结点有且只有()前驱结点。
4、设有一个空栈,现输入序列为E,D,C,B,A,经过push,push,pop,push,pop,push,pop后,栈顶元素是()。
5、在队列中入队操作由()指针进行控制,出队操作由()指针进行控制。
6、一维数组的元素起始地址LOC[6]=1000,元素长度为4,LOC[3]的起始地址为()。
7、广义表 ( ( a, b ),c , d , ( e,f ) ) 的表尾是()。
8、具有m个叶结点的哈夫曼树共有()个结点。
9、强连通分量是()图的极大连通子图。
10、n个结点的无向图的边数最多有()条。
11、用迪杰斯特拉算法求某一顶点到其余各顶点间的最短路径是按照路径长度()次序来得到最短路径。
12、希尔排序属于()排序,快速排序属于()排序,堆排序属于()排序。
二、单项选择题(共15小题,每小题2分,共30分)1、在()运算中,使用顺序表比链表好。
A、插入B、根据序号查找C、删除D、根据元素值查找2、在一个单链表中,已知*q结点是*p结点的前驱结点,若在*q和*p之间插入结点*s,则执行()。
A、s->next=p->next;p->next=s;B、p->next=s->next;s->next=p;C、q->next=s;s->next=p;D、p->next=s;s->next=q;3、设有一顺序栈S,元素s1,s2,s3,s4,s5,s6依次入栈,如果6个元素的先后出栈顺序是s2,s3,s4,s6,s5,s1,则栈的容量至少应该是()。
2008级数据结构试卷A及答案
2008级数据结构试卷A及答案(A) Improve the basic operations. (B) Minimize the number of disk accesses.(C) Eliminate the recursive calls. (D) Reduce main memory use.(7) The max-heap constructed by a sequence of key (54, 32, 45, 63, 76, 84) is( D )?(A) 84, 63, 54, 76, 32, 45 (B) 84, 76, 45, 63, 54, 32(C) 84, 63, 76, 32, 45, 54 (D) 84, 76, 54, 63, 32, 45(8) If there is 1MB working memory, 8KB blocks, yield 128 blocks for working memory. By the multi-way merge in external sorting, the average run size and the sorted size in one pass of multi-way merge on average are separately ( C )?(A) 1MB, 128 MB (B) 2MB, 512MB(C) 2MB, 256 MB (D) 1MB, 256MB(9) Tree indexing methods are meant to overcome what deficiency in hashing?( D )(A) Inability to handle range queries. (B) Inability to maximum queries(C) Inability to handle queries in key order (D) All of above.(10) Assume that we have eight records, with key values A to H, and that they are initially placed in alphabetical order. Now, consider the result of applying the following access pattern: F D F G E G F A D F G E, if the list is organized by the move-to-front heuristic, then the final list will be ( B ).(A)E G F D A C H B (B) E G F D A B C H(C) F D G A E C B H (D) F D G E A B C H2. Fill the blank with correct C++ codes: (15 scores)(1)Given an array storing integers ordered by value, modify the binary searchroutines to return the position of the first integer with the greatest value less than K when K itself does not appear in the array. Return ERROR if the least value in the array is greater than K: (12 scores)// Return position of greatest element <= Kint newbinary(int array[], int n, int K) {int l = -1;int r = n; // l and r beyond array boundswhile (l+1 != r) { // Stop when l and r meet___ int i=(l+r)/2_____; // Look at middle of subarrayif (K < array[i]) __ r=i ___; // In left halfif (K == array[i]) __ return i ___; // Found itif (K > array[i]) ___ l=i ___ // In right half}// K is not in array or the greatest value is less than Kif K> array[0] (or l !=-1)then return l ; // the first integer with the greatest value less than// K when K itself does not appear in the array else return ERROR; // the least value in the array is greater than K}(2) A full 6-ary tree with 100 internal vertices has ___601___vertices. ( 3 scores)3. A certain binary tree has the preorder enumeration as ABECDFGHIJ and the inorder enumeration as EBCDAFHIGJ. Try to draw the binary tree and give the postorder enumeration. (The process of your solution is required) (8 scores)Postorder enumeration : EDCBIHJGFA4. Determine Θ for the following code fragments in the average case. Assume that all variables are of type int.(6 scores)(1) sum=0;for (i=0; i<3; i++)for (j=0; jsum++; solution : Θ___(n)_______(2) sum = 0;for(i=1;i<=n;i++)for(j=1;j<=i;j++)sum++; solution : Θ__(n 2)________(3) sum=0;if (EVEN(n))for (i=0; isum++;elsesum=sum+n; solution : Θ___(n)_____5. Trace by hand the execution of Quicksort algorithm on the array:int a[] = {265 301 751 129 937 863 742 694 76 438} The pivot is 265 in the first pass, the second is 76 and 751, the third is 438 and 863, the four is 694, and so on till the algorithm is finished. (9 scores)initial: 265 301 751 129 937 863 742 694 76 438pass 1: [76 129] 265 [751 937 863 742 694 301 438]pass 2: 76 [129] 265 [438 301 694 742] 751 [863 937]pass 3: 76 129 265 [301] 438 [694 742] 751 863 [937]pass 4: 76 129 265 301 438 694 [742] 751 863 937pass 5: 76 129 265 301 438 694 742 751 863 937final sorted array:76 129 265 301 438 694 742 751 863 9376. Build the Huffman coding tree and determine the codes for the following set of letters and weights:A B C D E F G H5 25 36 10 11 36 4Draw the Huffman coding tree and give the Huffman code for each letters. What is the expected length in bits of a message containing n characters for this frequency distribution? (The process of your solution is required) (9 scores)Total length: 4 * 5 + 2 * 25 + 4 * 3 + 4 * 6 + 3 * 10 + 3 * 11 + 2 * 36 + 4 * 4 = 257Expected length: 257/100=2.577. Assume a disk drive is configured as follows. The total storage is approximately 675M divided among 15 surfaces. Each surface has 612 tracks; there are 144 sectors/track, 512 byte/sector, and 16 sectors/cluster. The interleaving factor is five. The disk turns at 7200rmp (8.33 ms/r). The track-to-track seek time is 20 ms, and the average seek time is 80 ms. Now how long does it take to read all of the data in a 320 KB file on the disk? Assume that the file ’s clusters are spread randomly across the disk. A seek must be performed each time the I/O reader moves to a new track. Show your calculations. (The process of your solution is required) (8 scores)Answer :The first question is how many clusters the file requires?DA cluster holds 16*0.5K = 8K. Thus, the file requires 320/8=40 clusters.The time to read a cluster is seek time to thecluster+ latency time + (interleaf factor ×rotation time).Average seek time is defined to be 80 ms. Latency time is 0.5 *8.33 ms(60/7200≈8.33ms),and cluster rotation time is 5 * (16/144)*8.33.Seek time for the total file read time is40* (80 + 0.5 *8.33+ 5 * (16/144)*8.33 ) ≈3551.85 ms Or 3551.51 when (60/7200≈8.3ms)8. Using closed hashing, with double hashing to resolve collisions, insert the following keys into a hash table of eleven slots (the slots are numbered 0 through 10). The hash functions to be used are H1 and H2, defined below. You should show the hash table after all eight keys have been inserted. Be sure to indicate how you are using H1 and H2 to do the hashing. ( The process of your solution is required)H1(k) = 3k mod 11 H2(k) = 7k mod 10+1Keys: 22, 41, 53, 46, 30, 13, 1, 67. (8 scores)Answer:H1(22)=0, H1(41)=2, H1(53)=5, H1(46)=6, no conflictWhen H1(30)=2, H2(30)=1 (2+1*1)%11=3,so 30 enters the 3rd slot;H1(13)=6, H2(13)=2 (6+1*2)%11=8, so 13 enters the 8th slot;H1(1)=3, H2(1)=8 (3+5*8)%11= 10 so 1 enters 10 (pass by 0, 8, 5, 2 );H1(67)=3, H2(67)=10 (3+2*10)%11= 1 so 67 enters 1(pass by 2)9. You are given a series of records whose keys are integers. The records arrive in the following order: C, S, D, T, A, M, P, I, B, W, N, G, U, R. Show the 2-3 tree that results from inserting these records. (the process of your solution is required)(7 scores)MSBD P UA C GI N R T W10.1) Use Dijkstra’s Algorithm to find the shortest paths from C to all other vertices.(4 scores)2) Use Kruskal’s algorithm to find the minimum-cost spanning tree. (3 scores)3) Show the DFS tree for the following graph, starting at Vertex A. (3 scores)1)C to A: 4 (C,A); CF: 5(C,F); CD: 6(C,A,D); CB: 12(C,A,D,B); CG:11 (C,F,G); CE: 13(C,A,D,B,E)2)OR3)A---->B---->D--->F---->C GE。
考研数据结构习题及参考答案
习题1一、单项选择题1.数据结构是指()。
A.数据元素的组织形式B.数据类型C.数据存储结构D.数据定义2.数据在计算机存储器内表示时,物理地址与逻辑地址不相同的,称之为()。
A.存储结构B.逻辑结构C.链式存储结构D.顺序存储结构3.树形结构是数据元素之间存在一种()。
A.一对一关系B.多对多关系C.多对一关系D.一对多关系4.设语句x++的时间是单位时间,则以下语句的时间复杂度为()。
for(i=1; i<=n; i++)for(j=i; j<=n; j++)x++;A.O(1)B.O(2n)C.O(n)D.O(3n)5.算法分析的目的是(C),算法分析的两个主要方面是(A)。
(1) A.找出数据结构的合理性 B.研究算法中的输入和输出关系C.分析算法的效率以求改进D.分析算法的易懂性和文档性(2) A.空间复杂度和时间复杂度 B.正确性和简明性C.可读性和文档性D.数据复杂性和程序复杂性6.计算机算法指的是(C),它具备输入,输出和(B)等五个特性。
(1) A.计算方法 B.排序方法C.解决问题的有限运算序列D.调度方法(2) A.可行性,可移植性和可扩充性 B.可行性,确定性和有穷性C.确定性,有穷性和稳定性D.易读性,稳定性和安全性7.数据在计算机内有链式和顺序两种存储方式,在存储空间使用的灵活性上,链式存储比顺序存储要()。
A.低B.高C.相同D.不好说8.数据结构作为一门独立的课程出现是在()年。
A.1946B.1953C.1964D.19689.数据结构只是研究数据的逻辑结构和物理结构,这种观点()。
A.正确B.错误C.前半句对,后半句错D.前半句错,后半句对10.计算机内部数据处理的基本单位是()。
A.数据B.数据元素C.数据项D.数据库二、填空题1.数据结构按逻辑结构可分为两大类,分别是___线性结构___和__非线性结构_。
2.数据的逻辑结构有四种基本形态,分别是__集合__、______线性_____、_____图___和______树______。
计算机数据结构考研真题及其答案
第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和C 5. 下面关于算法说法错误的是();A.算法最终必须由计算机程序实现B.为解决某问题的算法同为该问题编写的程序含义是相同的C. 算法的可行性是指指令不能有二义性D. 以上几个都是错误的6. 下面说法错误的是();(1)算法原地工作的含义是指不需要任何额外的辅助空间;(2)在相同的规模n下,复杂度O(n)的算法在时间上总是优于复杂度O(2n)的算法;(3)所谓时间复杂度是指最坏情况下,估算算法执行时间的一个上界;(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的赋值语句的频度为();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为正整数,则最后一行的语句频度在最坏情况下是();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.部分连续,部分不连续17.以下属于逻辑结构的是();A.顺序表 B. 哈希表 C.有序表 D. 单链表二、判断题1. 数据元素是数据的最小单位。
2008-西南交通大学考研真题一计算机
西南交通大学2008年硕士研究生入学考试试卷试题代码:921试题名称:程序设计与数据结构考生注意:1.本试题共6大题,共8页,考生请认真检查;2.请务必将答案写在答卷纸上,写在试卷上的答案无效。
一、填空题(本大题共20个空,每空1分,共20分)1、设有定义:int x=1, y=2; 则表达式: 2.0+x/y的值为:。
2、在C语言中字符串的存放,其最后一个字符称为“空字符”,也叫字符串的结束符,对应的转义字符是,其值为。
3、设有宏定义:#define AA 2-3 ,则3*AA的宏替换结果是。
4、设有定义:int a=3, b=2, c=1 ,则表达式:a>b>c的值是。
5、定义一个名为a的二维数组,并对数组元素赋初值,其值为下列矩阵,则对应的定义语句为:。
1.0 3.82.63.3 5.0 9.86、设有定义:char s[]=”SWJTU”; 则数组占用的内存为字节,s[5]的值为。
7、若有定义:inta[5],*p=a ;则*(p+3)表示;*p+3表示。
8、在具有n个元素单元的循环队列中,若采用少用一个元素来解决队空队满时都有头尾指针相等的问题,队满时共有个元素。
9、带一个头结点的单链表head为空的条件是。
10、二维数组A[10][20]采用列序为主序存储,每个元素占一个存储单元,并且A[0][0]的存储地址是200,则A[6][12]的地址是。
11、深度为k的完全二叉树至少有个结点,至多有个结点。
12、在一棵二叉树中,度数为零的结点个数为n0,度数为2的结点个数为n2,则有n0= 。
13、在无向图G的邻接矩阵A中,若A[i][j]等于1,则A[j][i]等于。
14、对n个元素的序列进行冒泡排序时,最少的比较次数是。
15、以折半查找方法查找一个线性表时,此线性表必须是存储的表。
二、单项选择题(本大题共30小题,每小题1分,共30分。
在每小题列出的四个选项中只有一个选项是符合题目要求的答案)1、若有以下定义语句:char ; int b ;float c ;double d:则表达式a+b*c-d 的值的类型是【】。
数据结构考研真题及解答
《数据结构》考研真题及解答目录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分)带权图(权值非负,表示边连接的两顶点间的距离)的最短路径问题是找出从初始顶点到目标顶点之间的一条最短路径。
2008数据结构学位考试试卷A
科目名称:数据结构O八-O九学年第一学期申请广州大学学士学位抽考课程试卷(A )课程名称数据结构考试形式(开/闭卷)考试时间:2009年1月日答题时间:120分钟考试地点:考试形式:闭卷1分,只有一个正确答案)1.线性表的链式存储比顺序存储最有利于进行()。
A.查找B.表尾插入或删除C.按值插入或删除D. 表头插入或删除2.在一个无向图中,所有顶点的度数之和等于所有边数的()倍。
A.3 B.2 C.1 D.1/23.利用n个值作为叶子节点的权生成的哈夫曼树中共包含有()个节点。
A.n B.n+1 C.2×n D.2×n-14.为了实现树的层次遍历算法,使用的一个辅助数据结构为()。
A.队列 B. 栈C.二叉树 D.树5.一个栈的输入序列是SWXYZ,则栈的不可能的输出序列是()。
A. ZYXWSB. YZXWSC. YXZSWD. SWXYZ6.假定一个带头节点的循环链队的队首和队尾指针分别用front和rear表示,则判断队空的条件为()。
A.front!=rear B.rear!=NULL C.front= =NULL D.front= =rear7.在一个长度为N的数组空间中,顺序存储着一个队列,该队列的队首和队尾指针分别用front和rear表示,则该队列中的元素个数为()。
A.(rear-front)%N B.(rear-front+N)%NC.(rear+N)%N D.(front+N)%N8.在一棵具有n个节点的二叉树的第i层上(根节点为第1层),最多具有()个节点。
A.2i B.2i+1 C.2i-1 D.2n9.根据n个元素建立一棵二叉搜索树时,其时间复杂度为()。
A.O(n) B.O(log2n) C.O(n2) D.O(nlog2n)10.n(n>1)个顶点的强连通图中至少含有()条有向边。
A.n-1 B.n C.n(n-1)/2 D.n(n-1)11.输入序列为ABC,若变为CBA时,经过的栈操作为()A. push,push,push,pop,pop,popB. push,pop,push,pop,push,popC. push,push,pop,pop,push,popD. push,pop,push,push,pop,pop12.若一棵二叉树具有10个度为2的结点,5个度为1的结点,则度为0的结点个数是()A.9 B.11 C.15 D.不确定13.在一个表头指针为ph的单链表中,若要在指针q所指节点的后面插入一个由指针p所指向的节点,则执行()操作。
2012-2019年三峡大学836数据结构真题合辑
2012-2019年三峡大学836数据结构真题合辑三峡大学2012年研究生入学考试试题(A卷)科目代码:838科目名称:数据结构(考生必须将答案写在答题纸上,总分150分,考试时间180分钟)一、选择题(每小题2分,共40分)1、线性表采用链式存储时,结点的存储地址()。
A.必须是不连续的B.连续与否均可C.必须是连续的D.和头结点的存储地址相连续2、已知指针q所指结点是指针p所指结点的直接前驱,若在*q与*p之间插入结点*s,则应执行()操作。
A. s->next=p->next; p->next=sB. q->next=s; s->next=pC. p->next=s->next; s->next=pD. p->next=s; s->next=q3、设有一个顺序栈S,元素按S1, S2, S3, S4, S5, S6顺序进栈,若6个元素的出栈顺序为S2, S3, S4, S6, S5, S1,则顺序栈的容量至少应为()。
A. 2 B. 3 C. 4 D. 54、如下陈述中正确的是()。
A.串是一种特殊的线性表B.串的长度必须大于零C.串中元素只能是字母D.空串就是空白串5、设有一个二维数A[m][n],假设A[0][0]寄存位置在544,A[5][5]寄存位置在624,每个元素占一个空间,A[2][2]在()位置。
A. 592B. 586C. 576D. 6086、设有5个字符呈现的频度分别为1,2,3,5,4,则对应的哈夫曼树的带权途径长度为()。
A. 34B. 33C. 35D. 157、含n个顶点和e条边的无向图的邻接矩阵中非零元素的个数为()。
A. e B. 2e C. n2-e D. n2-2e第2页8、长度为500的有序表采用折半查找时,查找成功最大比力次数为()。
A. 8 B. 9 C. 10 D. 119、快速排序在下列哪种情况下最易发挥其长处()。
[自学考试密押题库与答案解析]数据结构真题2008年下半年
}VNode.*AdjList;
typedef struc
int n,e;
}ALGraph;
问题:3. 某类物品的编号由一个大写英文字母及2位数字(0…9)组成,形如E32。运用基数排序对下列物品编号序列进行按字典序的排序,写出每一趟(分配和收集)后的结果。
答案:O(m+n)[解析] 将两个递增有序单链表合并为一个递减有序的单链表,则将这两个单链表都从最后一个元素开始,按照由后至前的顺序,将两单链表中元素进行比较,从而选取较大的元素依次组成新的单链表。
问题:3. 已知循环队列的存储空间大小为m,队头指针front指向队头元素,队尾指针rear指向队尾元素的下一个位置,则在队列不满的情况下,队列的长度是______。
问题:4. 若以S和X分别表示进栈和退栈操作,则对初始状态为空的栈可以进行的栈操作序列是
A.SXSSXXXX
B.SXXSXSSX
C.SXSXXSSX
D.SSSXXSXX
答案:D[解析] 可以按以下两个原则来判断出正确的栈操作序列:(1)操作序列中进栈次数和出栈次数相等;(2)操作序列中任一操作之前的进栈次数大于等于出栈次数。
EdgeNode*firstedge;
}VertexNode;
typedef VertexNode A djList[MaxVertexNum];
typedef struct{
AdjList adjiist;
int n,e;
}ALGraph;
为便于删除和插入图的顶点的操作,可将邻接表的表头向量定义为链式结构,两种定义的存储表示实例如下图所示,请写出重新定义的类型说明。
问题:10. 如图所示的带权无向图的最小生成树的权为
数据结构分析考研真题答案
数据结构分析考研真题答案数据结构分析考研真题答案考研是许多大学生为了进一步深造而选择的一条道路,而数据结构是计算机科学与技术专业的一门重要课程。
在考研过程中,数据结构分析是非常关键的一部分,因为它涉及到对数据的存储、组织和操作的理解与掌握。
下面将对一道数据结构分析考研真题进行解析,帮助考生更好地理解和掌握数据结构的知识。
题目如下:设有一个含有n个结点的二叉树,采用二叉链表存储结构,结点结构定义如下:struct Node {int data;struct Node *left;struct Node *right;};其中,data表示结点的数据,left和right分别指向左子树和右子树。
现给定一个指向二叉树根结点的指针root,请写出一个递归算法,计算二叉树中结点的个数。
解析:首先,我们需要明确递归算法的基本思想。
递归算法是一种将问题分解为相同或类似子问题的方法,通过解决子问题来解决原始问题。
在二叉树中计算结点个数的问题中,可以将问题分解为计算左子树结点个数、计算右子树结点个数和计算根结点个数三个子问题。
接下来,我们可以根据这个思路编写递归算法。
算法如下:int countNodes(struct Node *root) {if (root == NULL) {return 0;} else {return 1 + countNodes(root->left) + countNodes(root->right);}}首先,我们判断根结点是否为空,如果为空,则返回0,表示当前子树结点个数为0。
如果根结点不为空,则递归调用countNodes函数计算左子树和右子树的结点个数,并将结果相加,再加上根结点本身,即可得到整个二叉树的结点个数。
通过这个递归算法,我们可以方便地计算出二叉树中结点的个数。
这个算法的时间复杂度为O(n),其中n为二叉树的结点个数。
因为每个结点都需要访问一次,所以时间复杂度与结点个数成正比。
考研资料数据结构试卷
1、填空题。
(每小题2分,本题满分20分)(1) 假设用一个一维数组B 来按行存放一个对称矩阵A 的下三角部分,那么访问A 的第i 行第j 列元素的语句是:_________________________________。
(下标都从0开始) (2) 在单链表指针P 所指结点后插入指针为s 的结点操作是: 。
(3) 线性表L=(a 0,a 1,a 2,…a n-1)用数组表示,假设删除表中任一元素的概率相同,则删除一个元素所需的平均移动次数为 。
(4) 在指针L 指向一带头结点的双向循环链表,则判断该表中只有一个元素结点的条件是: (设结点结构为 . )(5)使用邻接矩阵表示图时,遍历一个顶点的所有相邻顶点的时间复杂度是:_____________。
(假设图的顶点个数为n, 边的个数为e)(6) 已知带权有向图如下,使用Dijkstra 算法求解从顶点1到达各顶点的最短距离时,该算法将按照_______________________(列出顶点顺序)的顺序给出各个顶点的距离。
1 20 2 30 3 10 48 1114 6 9 12 3 5 3 6 18 7 8 8(7) 假设一组关键码为(20,41,22,17,19,56,35),则用堆排序的方法建立的初始最大堆为 。
(8) KMP 模式匹配算法的时间复杂度是:___________________________。
(9) 设循环队列存放在数组A[0..m-1]中,若用牺牲一个单元的办法区分队列满和队列空(设队尾指针为rear, 队头指针为first),则判断队满的条件是: 。
. (10) 对n 个元素进行排序,如果用直接选择排序,所需的关键码比较次数最少为 ,如果用直接插入排序,则所需的关键码比较次数最少为 。
2、选择题。
(每小题2分,本题满分20分)(1)假设使用转换后的二叉树来表示森林,那么对该二叉树的前序遍历对应于对森林的______遍历。