文档库 最新最全的文档下载
当前位置:文档库 › 考研基础专业课“数据结构”历年考研真题与典型题详解-第一章至第四章【圣才出品】

考研基础专业课“数据结构”历年考研真题与典型题详解-第一章至第四章【圣才出品】

考研基础专业课“数据结构”历年考研真题与典型题详解-第一章至第四章【圣才出品】
考研基础专业课“数据结构”历年考研真题与典型题详解-第一章至第四章【圣才出品】

第1章绪论

1.1知识要点总结

一、数据结构的基本概念

1.基础概念和术语

(1)数据(Data):数据是客观事物的符号表示。在计算机科学中指的是所有能输入到计算机中并被计算机程序处理的符号的总称。

(2)数据元素(Data Element):数据元素是数据的基本单位,在程序中通常作为一个整体来进行考虑和处理。

(3)数据项(Data Item):数据项是数据的不可分割的最小单位,数据项是对客观事物的某一方面的数据描述。一个数据元素可由若干个数据项(Data Item)组成。

(4)数据对象(Data Object):数据对象是性质相同的数据元素的集合,是数据的一个子集。如字符集合C={‘A’,’B’,’C’,…}

(5)数据结构(Data Structure):数据结构是指相互之间存在一定联系(关系)的数据元素的集合。元素之间的相互联系(关系)称为逻辑结构。

2.数据结构的形式定义

数据结构的形式定义是一个二元组:

Data Structure=(D,S)

其中D是数据元素的有限集,S是D上关系的有限集。

数据元素之间的关系可以是元素之间本身代表的某种自然关系,也可以是为了处理问题方便而人为定义的关系,这种自然或人为定义的关系称为数据元素之间的逻辑关系,相应的

结构称为逻辑结构。

3.数据结构的组成

数据结构的三个组成部分:

(1)逻辑结构

数据元素之间的逻辑关系的描述。数据元素之间的逻辑结构有四种基本类型:

①集合:结构中的数据除了“同属于一个集合”外,没有其它关系。

②线性结构:结构中的数据元素之间存在一对一的关系。

③树形结构:结构中的数据元素之间存在一对多的关系。

④图形结构或网状结构:结构中的数据元素之间存在多对多的关系。

(2)存储结构

数据结构在计算机中的实际表达方式,它包括对数据元素的表示和对关系的表示。存储结构主要有:顺序存储、链式存储、索引存储和散列存储。

①顺序存储结构:用数据元素在存储器中的相对位置来表示数据元素之间的逻辑结构。数据元素存放的地址是连续的。其优点是可以实现随机存取,存储空间小;缺点是只能使用相邻的一整块存储单元,容易产生碎片。

②链式存储结构:在每一个数据元素中增加一个存放另一个元素地址的指针,用该指针来表示数据元素之间的逻辑结构。对数据元素存放的地址是否连续没有要求。其优点是能充分利用所有存储单元;缺点是每个结点都需要额外的存储空间,且只能实现顺序存取。

③索引存储结构:在存储元素信息的同时.还建立附加的索引表。索引表中的每一项称为索引项,索引项的一般形式是:(关键字.地址),关键字唯一标识一个元素,地址作为指向元素的指针。其优点是检索速度快;缺点是需要额外的存储空间来存放索引表。

④散列(或哈希)存储结构:根据元素的关键字通过哈希函数直接计算出该元素的存储

地址。其优点是检索速度快,缺点是可能存在冲突,而解决冲突会增加时空开销。

(3)数据操作

对数据要进行的运算。

【例】下列有关数据存储结构的叙述中,正确的是()。

A.顺序存储方式只能用于存储线性结构

B.顺序存储方式的优点是占用存储空问小,插入、删除等操作效率高

C.链表的每个结点中都恰好含有一个指针

D.Hash存储的基本思想是由关键词的值决定数据的存储地址

【答案】D

【解析】顺序存储方式除了用于存储线性结构外,还能存储数组或完全二叉树等非线性结构,但在插入、删除操作时,由于要移动大量的数据,执行效率低。链表的形式有单链表、双链表和多重链表,除了单链表外,其他链表中的结点需要两个以上的指针。

二、抽象数据类型

1.数据类型

数据类型(Data Type):数据类型是一个值的集合和定义在该集合上的一组操作的总称。

2.抽象数据类型

抽象数据类型(ADT):是指一个数学模型以及定义在该数据模型上的一组操作。

ADT的定义仅是一组逻辑特性的描述,与其在计算机内的表示和实现无关。因此,不论ADT内部结构如何变化,只要其数学特性不变,都不影响其外部使用。

ADT的形式化定义是三元组:ADT={D,S,P}。

其中:D是数据对象,S是D上的关系集,P是对D的基本操作集。

三、算法分析

1.算法

(1)概念

算法(Algorithm):算法是对特定问题求解方法(步骤)的一种描述,是指令的有限序列,其中每一条指令表示一个或多个操作。

(2)特性

算法由五个特性:

①有穷性:一个算法必须总是在执行有穷步之后结束,且每一步都在有穷时间内完成。

②确定性:算法中每一条指令必须有确切的含义,不存在二义性,且算法只有一个入口和出口。

③可行性:算法描述的操作都可以通过已经实现的基本运算执行有限次来实现。

④输入:一个算法有零个或多个输入,这些输入取自于某个特定的对象集合。

⑤输出:一个算法有一个或多个输出,这些输出同输入有着某些特定关系的量。

(3)评价标准

评价一个好的算法有以下几个标准:

①正确性:算法应满足具体问题的需求。

②可读性:算法应容易供人阅读和交流。可读性好的算法有助于对算法的理解和修改。

③健壮性:算法应具有容错处理。当输入非法或错误数据时,算法能适当地做出反应或进行处理。

④通用性:算法应具有一般性,处理结果对于一般数据集合都成立。

⑤效率和存储量需求:效率指的是算法执行的时间;存储量需求指的是执行过程中所需要的最大存储空间。

2.效率的度量

(1)时间复杂度

算法中的基本操作重复执行的次数是问题规模n的某个函数,其时间度量记做T(n)=O(f(n))(其中“O”是指T(n)的数量级),称作算法的渐进时间复杂度,简称时间复杂度。

算法的时间复杂度一般用最深层循环内的语句中的原操作的执行频度(重复执行的次数)来表示。

常用的时间复杂度的关系:

O(1)

有的情况下,算法中基本操作重复执行的次数会随问题的输入数据集的不同而不同(2)空间复杂度

空间复杂度指的是算法编写成程序后,在计算机中运行时所需存储空间大小的度量。记做:S(n)=O(f(n)),其中n为问题的规模。

空间复杂度一般包括三个方面:

①指令常数变量所占用的存储空间。

②输入数据所占用的存储空间。

③辅助存储空间。

【例】有以下算法,其时间复杂度为()。

A.O(1)

B.O(log2n)

C.O(n)

D.(nlog2n)

【答案】B。

【解析】基本运算语句为d=d/2(或f=f*f),设其执行时间为T(n),则有:

则T(n)≤log2n=O(log2n)。

注意算法中while循环的if条件中包含的p=p*f语句可以不考虑.因为它执行的次数不超过d=d/2语句的执行次数。

1.2考研真题与典型题详解

一、单项选择题

1.下列程常段的时间复杂度是()。[2014年联考真题]

最新考研计算机数据结构模拟试题及答案(五)

考研计算机数据结构模拟试题及答案(五) 一、选择题(30分) 1. 设一组权值集合W={2,3,4,5,6},则由该权值集合构造的哈夫曼树中带权路径长度之和为( )。 (A) 20 (B) 30 (C) 40 (D) 45 2.执行一趟快速排序能够得到的序列是( )。 (A) [41,12,34,45,27] 55 [72,63] (B) [45,34,12,41] 55 [72,63,27] (C) [63,12,34,45,27] 55 [41,72] (D) [12,27,45,41] 55 [34,63,72] 3.设一条单链表的头指针变量为head且该链表没有头结点,则其判空条件是( )。 (A) head==0 (B) head->next==0 (C) head->next==head (D) head!=0 4.时间复杂度不受数据初始状态影响而恒为O(nlog2n)的是( )。 (A) 堆排序(B) 冒泡排序(C) 希尔排序(D) 快速排序 5.设二叉树的先序遍历序列和后序遍历序列正好相反,则该二叉树满足的条件是( )。 (A) 空或只有一个结点(B) 高度等于其结点数 (C) 任一结点无左孩子(D) 任一结点无右孩子 6.一趟排序结束后不一定能够选出一个元素放在其最终位置上的

是( )。 (A) 堆排序(B) 冒泡排序(C) 快速排序(D) 希尔排序 7.设某棵三叉树中有40个结点,则该三叉树的最小高度为( )。 (A) 3 (B) 4 (C) 5 (D) 6 8.顺序查找不论在顺序线性表中还是在链式线性表中的时间复杂度为( )。 (A) O(n) (B) O(n2) (C) O(n1/2) (D) O(1og2n) 9.二路归并排序的时间复杂度为( )。 (A) O(n) (B) O(n2) (C) O(nlog2n) (D) O(1og2n) 10. 深度为k的完全二叉树中最少有( )个结点。 (A) 2k-1-1 (B) 2k-1 (C) 2k-1+1 (D) 2k-1 11.设指针变量front表示链式队列的队头指针,指针变量rear表示链式队列的队尾指针,指针变量s指向将要入队列的结点X,则入队列的操作序列为( )。 (A) front->next=s;front=s; (B) s->next=rear;rear=s; (C) rear->next=s;rear=s; (D) s->next=front;front=s; 12.设某无向图中有n个顶点e条边,则建立该图邻接表的时间复杂度为( )。 (A) O(n+e) (B) O(n2) (C) O(ne) (D) O(n3) 13.设某哈夫曼树中有199个结点,则该哈夫曼树中有( )个叶子结点。 (A) 99 (B) 100 (C) 101 (D) 102

最新考研计算机数据结构模拟试题及答案(二)

考研计算机数据结构模拟试题及答案(二) 一、选择题(30分) 1.下列程序段的时间复杂度为( )。 for(i=0; i (A) O(m*n*t) (B) O(m+n+t) (C) O(m+n*t) (D) O(m*t+n) 2.设顺序线性表中有n个数据元素,则删除表中第i个元素需要移动( )个元素。 (A) n-i (B) n+l -i (C) n-1-i (D) i 3.设F是由T1、T2和T3三棵树组成的森林,与F对应的二叉树为B,T1、T2和T3的结点数分别为N1、N2和N3,则二叉树B的根结点的左子树的结点数为( )。 (A) N1-1 (B) N2-1 (C) N2+N3 (D) N1+N3 4.利用直接插入排序法的思想建立一个有序线性表的时间复杂度为( )。 (A) O(n) (B) O(nlog2n) (C) O(n2) (D) O(1og2n) 5.设指针变量p指向双向链表中结点A,指针变量s指向被插入的结点X,则在结点A的后面插入结点X的操作序列为( )。 (A) p->right=s; s->left=p; p->right->left=s; s->right=p->right; (B) s->left=p;s->right=p->right;p->right=s; p->right->left=s; (C) p->right=s; p->right->left=s; s->left=p; s->right=p->right; (D) s->left=p;s->right=p->right;p->right->left=s; p->right=s; 6.下列各种排序算法中平均时间复杂度为O(n2)是( )。

数据结构 考研真题精选

考研真题精选 一、选择题 1.若查找每个记录的概率均等,则在具有n个记录的连续顺序文件中采用顺序查找法查找一个记录,其平均查找长度ASL为( )。 A.(n-1)/2 B. n/2 C. (n+1)/2 D. n 2. 对N个元素的表做顺序查找时,若查找每个元素的概率相同,则平均查找长度为( ) A.(N+1)/2 B. N/2 C. N D. [(1+N)*N ]/2 3.顺序查找法适用于查找顺序存储或链式存储的线性表,平均比较次数为((1)),二分法查找只适用于查找顺序存储的有序表,平均比较次数为((2))。在此假定N为线性表中结点数,且每次查找都是成功的。 A.N+1 B.2log2N C.logN D.N/2 E.Nlog2N F.N2 4. 下面关于二分查找的叙述正确的是( ) A. 表必须有序,表可以顺序方式存储,也可以链表方式存储 C. 表必须有序,而且只能从小到大排列 B. 表必须有序且表中数据必须是整型,实型或字符型 D. 表必须有序,且表只能以顺序方式存储 5. 对线性表进行二分查找时,要求线性表必须() A.以顺序方式存储 B.以顺序方式存储,且数据元素有序 C.以链接方式存储 D.以链接方式存储,且数据元素有序 6.适用于折半查找的表的存储方式及元素排列要求为( ) A.链接方式存储,元素无序B.链接方式存储,元素有序 C.顺序方式存储,元素无序D.顺序方式存储,元素有序 7. 用二分(对半)查找表的元素的速度比用顺序法( ) A.必然快 B. 必然慢 C. 相等 D. 不能确定 8.当在一个有序的顺序存储表上查找一个数据时,即可用折半查找,也可用顺序查找,但前者比后者的查找速度( ) A.必定快 B.不一定 C. 在大部分情况下要快 D. 取决于表递增还是递减 9. 具有12个关键字的有序表,折半查找的平均查找长度() A. 3.1 B. 4 C. 2.5 D. 5 10. 折半查找的时间复杂性为() A. O(n2) B. O(n) C. O(nlog n) D. O(log n) 11.当采用分快查找时,数据的组织方式为( ) A.数据分成若干块,每块内数据有序 B.数据分成若干块,每块内数据不必有序,但块间必须有序,每块内最大(或最小)的数据组成索引块 C. 数据分成若干块,每块内数据有序,每块内最大(或最小)的数据组成索引块 D. 数据分成若干块,每块(除最后一块外)中数据个数需相同 12. 二叉查找树的查找效率与二叉树的( (1))有关, 在((2))时其查找效率最低 (1): A. 高度 B. 结点的多少 C. 树型 D. 结点的位置 (2): A. 结点太多 B. 完全二叉树 C. 呈单枝树 D. 结点太复杂。 13. 要进行顺序查找,则线性表(1);要进行折半查询,则线性表(2);若表中元素个数为n,则顺序查找的平均比较次数为(3);折半查找的平均比较次数为(4)。 (1)(2):A. 必须以顺序方式存储;B. 必须以链式方式存储;C. 既可以以顺序方式存

数据结构研究生入学考试模拟题(一)

哈尔滨工业大学 二〇〇八年硕士研究生考试模拟试题(一) 考试科目:计算机专业基础 适用专业:计算机科学与技术 I 数据结构(含高级语言)部分(共75分) 一、填空题(每空1分,共9分) +?++的后缀表达式 1.表达式23((12*32)/434*5/7)108/9 是。 2.设有一个10阶对称矩阵A采用压缩存储方式(以行为主序存储:a11=1),则a85 的地址为。 3.设有广义表A=(((a,b),x),((a),(b)),(c,(d,(y)))),得到y的对广义表 A的操作序列为。 4.如果二叉树有20个叶结点,有30个结点仅有一个孩子,则该二叉树的总节点数 为。 5.G是一个非连通无向图,共有28条边,则该图至少有个顶点。 6.构造n个结点的强联通图,至少有条弧。 7.设表长为1023的有序线性表,查找每个元素的概率相等,采用折半查找方法,查 找成功的ASL是。 8.分别采用堆排序、快速排序、冒泡排序和归并排序,对初太为有序的表,则最省时 间的是算法,最费时间的是算法。 二、单项选择题(每题1分,共11分) 1.静态链表中指针表示的是() A 下一元素的地址 B 内存储器的地址 C 下一元素在数组中的位置 D 左链或右链指向的元素的地址 2.计算算法的时间复杂度是属于一种() A 事前统计的方法 B 事前分析估算的方法 C 事后统计的方法 D 时候分析估算的方法 3.若用一个大小为6的数组来实现循环队列,且当前rear和front的值分别为0和3, 当从队列中删除一个元素,再加入两个元素后,rear和front的值分别为() A 1和5 B 2和4 C 4和2 D 5和1 4.若6行5列的数组以列序为主序顺序存储,基地址为1000,每个元素占2个存储 单元,则第3行第4列的元素(假定无第0行第0列)的地址是() A 1040 B 1042 C 1026 D 都不正确 5.一棵124个叶节点的完全二叉树,最多有()个节点。

数据结构模拟考研冲刺三套卷

第一部分 1.在一个单链表中,已知指针p 指向其中的某个结点,若在该结点前插入一个由指针s 指向的结点,则需执行()。 A.s->next = p->next; p->next = s; B.p->next = s; s->next = p; C. r = p->next; p->next = s; s->next = r; D.仅靠已知条件无法实现 2.设顺序表长度为n,从表中删除元素的概率相等。则在平均情况下,从表中删除一个元素需要移动 的元素个数是()。 A.(n?1)/2 B.n/2 C.n(n ? 1)/2 D.n(n + 1)/2 3.在一个具有n 个单元的顺序栈中,假定以高端(即第n?1 单元)作为栈底,以top 为栈顶指针,则当作出栈运算时,top 变化为()。 A.top 不变 B.top = 0 C.top-- D.top ++ 4.若一个栈以向量V[n]存储,设栈空时,栈顶指针top 为n?1,则下面x 进栈的正确操作是()。 A.top = top + 1;V[top] = x B.V[top] = x;top = top + 1 C.top = top ? 1;V[top] = x D.V[top] = x;top = top ? 1 5.经过以下栈运算后,x 的值是()。 InitStack(s); Push(s, a); Push(s, b); Pop(s, x); Push(s, c); Pop(s, x); GetTop(s, x); A. a B.b C.c D.d 6.若一棵二叉树有126 个节点,在第7 层(根结点在第1 层)的结点个数至多有()。 A.32 B.64 C.63 D.不存在第7 层 7.具有n 个顶点的有向图的边最多有()。 A.n B.n(n?1) C.n(n+1) D.n2 8.设连通图G 的顶点数为n,则G 的生成树的边数为()。 A.n B.n?1 C.2n D.2n?1 9.散列查找中k 个关键字具有同一哈希值,若用线性探测法将这k 个关键字对应的记录存入哈希表中,至少要进行()次探测。 A.k B.k + 1 C.k(k + 1)/2 D.1 + k(k + 1)/2 10.一组记录的关键字为(45,80,55,40,42,85)则利用堆排序的方法建立的初始堆为()。 A.(80,45,55,40,42,85) B.(85,80,55,40,42,45) C.(85,80,55,45,42,40) D.(85,55,80,42,45,40) 11. 假设某文件经内部排序得到100 个初始归并段,若要使多路归并三趟完成排序,则应取归并的路数至少为多少?()。 A.2 B.3 C.4 D.5 第二部分 1. 判断带头结点的线性链表L 是否为空的条件是()。 A.L.elem=NULL B.L.length = 0 C.L->next=NULL D.L = NULL 2. 设有多项式A 和B 的项数分别为m 和n ,均采用单链表表示,进行A 加B 运算的时间复杂度为()。 A.O(m )(当m>n 时) B.O(n)(当n>m 时) C.O(m + n) D.O(m *n) 3.若用一个大小为6 的数组来实现循环队列,且当前rear 和front 的值分别为0 和3。当从队列中删除一个元素,再加入两个元素后,rear 和front 的值分别为()。

数据结构考研模拟试题及详解(一)【圣才出品】

数据结构考研模拟试题及详解(一) 一、单项选择题(每小题2分,共20分) (1)设Huffman树的叶与节点数为m,则节点的点数为()。 A.2m B.2m-1 C.2m+l D.m+l 【答案】B 【解析】Huffman不存在一个分支的节点,对于任意的二叉树都有n0=n2+1,而n0=m,故推出Huffman的总结点数为m+m-1。 (2)若顺序存储的循环队列的QueueMaxSize=n,则该队列最多可存储()个元素。 A.n B.n-1 C.n+l D.不确定 【答案】B 【解析】循环队列Q.rear==Q.front用来表示队列为空,而(Q.rear+1)%QueueMaxSize==Q.front来判断队列是否已满。也就是说循环队列需要一个额外的数据空间来表示循环队列已经存满的。所以最多只能存n-1。

(3)下述哪一条是顺序存储方式的优点?() A.存储密度大 B.插入和删除运算方便 C.获取符合某种条件的元素方便 D.查找运算速度快 【答案】A 【解析】因为顺序存储方式把分配给存储单元全用来存放结点数据,结点之间的逻辑关系没有占用额外的存储空间。所以相比链式存储方式同样大小的空间它可以存下更多的数据。 (4)设有一个二维数组A[m][n],假设A[0][0]存放位置在为 每个元素占一个空 间. A.658 B.648 C.633 D.653 【答案】D 【解析】根据二维数组地址计算公式LOC(A[i][j])=LOC(A[p][q])+((i?p)*n+(j?q))*t(t表示字节),把t=1、A[0][0]及A[3][3]代入得到n=25。故A[2][3]

考研计算机-数据结构模拟试题

计算机数据结构模拟试题(一) 一.单项选择题:1~40题,每小题2分共80分。在每小题给出的四个选项中,请选出一项最符合题目要求的。 1.在一个单链表中,已知指针p指向其中的某个结点,若在该结点前插入一个由指针s 指向的结点,则需执行()。 A.s->next = p->next; p->next = s; B.p->next = s; s->next = p; C.r = p->next; p->next = s; s->next = r; D.仅靠已知条件无法实现 2.设顺序表长度为n,从表中删除元素的概率相等。则在平均情况下,从表中删除一个元素需要移动的元素个数是()。 A.(n?1)/2 B.n/2 C.n(n? 1)/2 D.n(n + 1)/2 3.在一个具有n个单元的顺序栈中,假定以高端(即第n?1单元)作为栈底,以top 为栈顶指针,则当作出栈运算时,top变化为()。 A.top不变B.top = 0 C.top-- D.top ++ 4.若一个栈以向量V[n]存储,设栈空时,栈顶指针top为n?1,则下面x进栈的正确操作是()。 A.top = top + 1;V[top] = x B.V[top] = x;top = top + 1 C.top = top ? 1;V[top] = x D.V[top] = x;top = top ? 1 5.经过以下栈运算后,x的值是()。 InitStack(s); Push(s, a); Push(s, b); Pop(s, x); Push(s, c); Pop(s, x); GetTop(s, x); A. a B.b C.c D.d 6.若一棵二叉树有126个节点,在第7层(根结点在第1层)的结点个数至多有()。 A.32 B.64 C.63 D.不存在第7层 7.具有n个顶点的有向图的边最多有()。 A.n B.n(n?1) C.n(n+1) D.n2 8.设连通图G的顶点数为n,则G的生成树的边数为()。 A.n B.n?1 C.2n D.2n?1 9.散列查找中k个关键字具有同一哈希值,若用线性探测法将这k个关键字对应的记录存入哈希表中,至少要进行()次探测。 A.k B.k + 1 C.k(k + 1)/2 D.1 + k(k + 1)/2 10.一组记录的关键字为(45,80,55,40,42,85),则利用堆排序的方法建立的初始

严蔚敏《数据结构》(第2版)配套模拟试题及详解(一)【圣才出品】

严蔚敏《数据结构》(第2版)配套模拟试题及详解(一) 一、单项选择题(每小题2分,共20分) 1.设Huffman树的叶与节点数为m,则节点的点数为()。 A.2m B.2m-1 C.2m+1 D.m+1 【答案】B 【解析】Huffman不存在一个分支的节点,对于任意的二叉树都有n0=n2+1,而n0 =m,故推出Huffman的总结点数为m+m-1。 2.若顺序存储的循环队列的QueueMaxSize=n,则该队列最多可存储()个元素。 A.n B.n-1 C.n+l D.不确定 【答案】B 【解析】循环队列Q.rear==Q.front用来表示队列为空,而 (Q.rear+1.%QueueMaxSize == Q.front来判断队列是否已满。也就是说循环队列需要一个额外的数据空间来表示循环队列已经存满的。所以最多只能存n-1。 3.下述哪一条是顺序存储方式的优点?() A.存储密度大B.插入和删除运算方便 C.获取符合某种条件的元素方便D.查找运算速度快 【答案】A 【解析】因为顺序存储方式把分配给存储单元全用来存放结点数据,结点之间的逻辑

数据。 4.设有一个二维数组A[m][n],假设A[0][0]存放位置在为 每个元素占一个空间. A.658 B.648 C.633 D.653 【答案】D 【解析】根据二维数组地址计算公式LOC(A[i][j])= LOC(A[p][q])+ ((i ?p)* n + (j ? q))* t(t表示字节),把t=1、A[0][0]及 A[3][3]代入得到n = 25。故A[2][3] = A[0][0]+(2*25+3.*1 = 653。 5.下列关于二叉树遍历的叙述中,正确的是()。 A.若一个树叶是某二叉树的中序遍历的最后一个节点,则它必是该二叉树的前序遍历最后一个节点 B.若一个节点是某二叉树的前序遍历最后一个节点,则它必是该二叉树的中序遍历的最后一个节点 C.若一个节点是菜二叉树的中序遍历的最后一个节点,则它必是该二叉树的前序最后一个节点 D.若一个树叶是某二叉树的前序遍历的最后一个节点,则它必是该二叉树的中序遍历最后一个节点

数据结构考研真题及其答案

一、选择题 1.算法的计算量的大小称为计算的(B)。【北京邮电大学2000二、3(20/8分)】 A.效率B.复杂性C.现实性D.难度 2.算法的时间复杂度取决于(C)【中科院计算所1998 二、1(2分)】 A.问题的规模B.待处理数据的初态和B 3.计算机算法指的是(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分)】

数据结构考研-名校考研真题及模拟试题【圣才出品】

名校考研真题 一、选择题 1.已知程序如下: 程序运行时使用栈来保存调用过程的信息,自栈底到栈顶保存的信息依次对应的是()。[2015年联考真题] A.main()->S(1)->S(0) B.S(0)->S(1)->main() C.main()->S(0)->S(1) D.S(1)->S(0)->main() 【答案】A 【解析】函数S(int n)是一个递归函数:①当实际参数小于等于零时则返回0,并终止递归;②当实际参数大于零时则递归调用S(n-1),并将S(n-1)的结果加上n作为返回值。程序从main()函数开始,首先调用main()函数;在main()函数中调用S(1)函数时,将main()函数的上下文保存到栈中,并进入函数S(1);由于函数S(1)的实际参数大于零,需要调用S(0),故将S(1)函数的上下文保存到栈中,进入S(0);在S (0)中,实际参数小于等于零,递归终止。

2.算法分析的目的是()。[北京理工大学考研真题] A.找出数据结构的合理性 B.研究算法中的输入和输出的关系 C.分析算法的效率以求改进 D.分析算法的易懂性和文档性 【答案】C 【解析】分析算法为的就是能对算法有更多、更好的改进。 3.先序序列为a,b,c,d的不同二叉树的个数是()。[2015年联考真题] A.13 B.14 C.15 D.16 【答案】B 【解析】二叉树的先序遍历定义为:若二叉树为空,则空操作;否则,访问根节点,然后先序遍历左子树,最后先序遍历右子树。本题中,结点a为二叉树的根节点,左右子树的先序遍历可能存在下面四种情况:①左子树为空,bcd为右子树;②b为左子树,cd为右子树;③bc为左子树,d为右子树;④bcd为左子树,右子树为空。然后将左右子树继续分解,如第①种情况的右子树先序遍历(bcd)可能有:a.左子树为空,右子树为cd;b.左子树为c,右子树为d;c.左子树为cd,右子树为空。按照这种方法继续分解左右子树,直到不能再分解为止,可得第①和④种情况各包含5种不同情况,第②和③种情况各包含2种情况,因此总共有14种不同的二叉树。

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

考研计算机数据结构模拟试题及答案(三) 一、选择题(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. 向二叉排序树中插入一个结点需要比较的次数可能大于该

数据结构考研真题及其答案

一、选择题 1. 算法的计算量的大小称为计算的( B )。【北京邮电大学2000 二、3 (20/8分)】 A.效率 B. 复杂性 C. 现实性 D. 难度2. 算法的时间复杂度取决于(C )【中科院计算所 1998 二、1 (2分)】 A.问题的规模 B. 待处理数据的初态 C. A和B 3.计算机算法指的是(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) 【武汉交通科技大学 1996 7.从逻辑上可以把数据结构分为( C )两大类。 一、4(2分)】 A.动态结构、静态结构 B.顺序结构、链式结构 C.线性结构、非线性结构 D.初等结构、构造型结构 8.以下与数据的存储结构无关的术语是( D )。【北方交通大学 2000 二、1(2分)】

数据结构考研模拟试题及详解(二)【圣才出品】

数据结构考研模拟试题及详解(二) 一、单项选择题(每小题2分,共20分) (1)队列的特点是()。 A.先进后出 B.先进先出 C.任意位置进出 D.前面都不正确 【答案】B 【解析】考察队列的性质。 (2)有n个记录的文件,如关键字位数为d,基数为r,则基数排序共要进行()遍分配与收集。 A.n B.d C.r D.n-d 【答案】B 【解析】基数排序是按组成关键字的各位值进行分配收集而完成的。 (3)在二叉树节点的先序序列、中序序列和后序序列中,所有叶子节点的先后顺序()。

A.都不相同 B.完全相同 C.先序和中序相同,而与后序不同 D.中序和后序相同,而与先序不同 【答案】B 【解析】无论是哪种遍历方式,遍历叶子节点时,都是先访问左子树,后访问右子树。 (4)限定在一端加入和删除元素的线性表称为()。 A.双向链表 B.单向链表 C.栈 D.队列 【答案】C 【解析】根据栈后进先出的特性,可见栈都在一端对元素进行操作。 (5)设内存工作区可容纳8个记录,初始文件共有64个关键字不同的记录,且已按关键字递减排列,如用置换.选择排序产生初始归并段,最长初始归并段所含记录数是()。 A.6 B.7 C.8 D.9

【答案】C 【解析】对于置换选择排序,输入的文件是以关键字降序排列时,所得的初始归并段的最大长度为工作区的大小。当输入的文件以关键字的升序排序时,只能得到一个长度为文件长度的初始归并段。 (6)设森林F对应的二叉树为B,它有m个节点,B的根为p,p的右子树上的节点个数为n,森林F中第一棵树的节点个数是()。 A.m-n-1 B.n+l C.m-n+1 D.m-n 【答案】D (7)设有198个初始归并段,如采用K-路平衡归并三遍完成排序,则K值最大为()。 A.12 B.13 C.14 D.15 【答案】C 【解析】k一路平衡归并,归并趟数公式s=[1og k m],m指归并段数,s指趟数。要三遍完成遍历,那就看两遍完成排序的需遍历的最小数。把s=2和m=198带入公式,可知

数据结构考研模拟题

模拟试题一 一.单项选择题 1. 设有一个二维数组A[m][ n]在存储中按行优先存放,假设A[0][0] 存放位置在78010), A[4][6]存放位置在1146(10),每个元素占一个空间,则A[6][20] 在( )位置,(10)表明用10进制数表示。 A. 692(10) B. 780(10) C. 1146(10) D. 1340(10) 2. 设有一个顺序存储的栈S ,让元素序列1, 2, 3, ..., n 依次进栈和出栈,得到的出栈序列为 p 1, p 2, p 3, ..., p n 。若p 3 = 1,则p 1是( )。 A. 2 B. 3 C. 4 D. 5 3. 设有一个双端队列DQ ,若让元素序列1, 2, 3, …, n 顺序全进队然后再出队,则可能的 出队序列有( )种。 A. n B. n(n -1)/2 C. D. n! 4. 假定一组元素序列为{38, 42, 55, 15, 23, 44, 30, 74, 48, 26},按次序插入每个元素生成一 棵平衡二叉树,那么最后得到的平衡二叉树中度为2的结点个数为( )。 A. 1 B. 3 C. 4 D. 5 5. 以下关于二叉树的说法中错误的是( )。 A. 在二叉树的后序序列中最后一个结点一定是二叉树的根结点。 B. 在二叉树的中序序列中最后一个结点一定是二叉树的一个叶结点。 C. 在二叉树的前序序列中最后一个结点一定是二叉树的一个叶结点。 D. 在二叉树的层次序序列中最后一个结点一定是二叉树的一个叶结点。 6. 下列关于后缀表达式的比较中,结果为“假”的是( )。 ① xy+z+ == xyz++ ② xy+z - == xyz -+ ③ xy -z+ == xyz+- ④ xy -z - == xyz -- A. ① B. ①② C. ③④ D. ②④ 7. 设图G = (V, E),其中 V={V 0,V 1,V 2,V 3} E ={(V 0,V 1), (V 0,V 2), (V 0,V 3), (V 1,V 3)} 则从顶点V 0开始对图G 的深度优先遍历序列总共有( )种。 A. 3 B. 4 C. 5 D. 2 8. 一棵度为3高度为4的满4叉树中路径长度为( )。 A. 32 B. 40 C. 102 D. 176 9. 设有一个含有200个元素的散列表,用二次探测法解决冲突,要求按关键字查询寻找一 个不在表中的元素但找到它插入位置的平均探测次数不能超过2.5,则散列表的长度应 C n n n 121

《数据结构》考研辅导模拟考试

《数据结构》考研辅导模拟试题 一、单项选择题( 本大题共20小题,每小题2 分,共40 分) 在每小题列出的四个选项中只有一个选项是符合题目要求的,请将其代码填在相应表格内。错选或未选均无分。 ()1. 数据的逻辑结构和存储结构是《数据结构》课程中的两个重要概念,下列关于这两个概念的叙述不正确的是()。 A. 数据的逻辑结构描述的是数据元素之间的逻辑关系 B. 数据的存储结构包括数据元素在计算机中的存储和关系在计算机中的存储 C. 非顺序存储结构借助元素在存储器中的相对位置来表示元素间的逻辑关系 D. 算法的设计取决于数据的逻辑结构,而算法的实现依赖于采用的存储结构()2. 线性表的顺序存储结构和链式存储结构分别是( )。 A. 顺序存取的存储结构、顺序存取的存储结构 B. 顺序存取的存储结构、随机存取的存储结构 C. 随机存取的存储结构、随机存取的存储结构 D. 随机存取的存储结构、顺序存取的存储结构 ()3. 若长度为n的线性表采用顺序存储结构,在其第i个位置插入一个新元素,其中i的值为奇数时插入的概率为0,i的值为偶数时插入的概率相等,则所需移动元素的平均次数为()(1<=i<=n+1)。 A. n-1/2 B. n/2 C. n/2取下整 D. n/2取上整 E.不确定 ()4.在循环双链表的p所指结点之后插入s所指结点的操作序列正确的是( )。 A. p->next=s;s->prior=p;p->next->prior=s;s->next=p->next; B. s->prior=p;s->next=p->next;p->next->prior=s;p->next=s; C. s->prior=p;s->next=p->next;p->next=s;p->next->prior=s; D. p->next=s;p->next->prior=s;s->prior=p;s->next=p->next; ()5. 某线性表中最常用的操作是在最后一个元素之后插入一个元素和删除第一个元素,则采用()存储方式最节省运算时间。 A.单链表B.仅有头指针的单循环链表 C.双向链表D.仅有尾指针的单循环链表 ()6. 一般情况下,对静态链表S,如果S[i].data=a k,则a k+1为: A. S[i+1].data B. S[S[i].cur].data C. S[i-1].data D. S[S[i].data].data ()7. 设栈S 和队列Q 的初始状态为空,元素e1,e2,e3,e4,e5 和e6 依次通过栈S,一个元素出栈后即进队列Q,若6 个元素出队的序列是e2,e4,e3,e6,e5,e1。则栈S 的容量至少应该是( )。 A. 6 B. 4 C. 3 D. 2 ()8. 设abcdef以所给的次序进栈,若在进栈操作时,允许退栈操作,则下面得不到的序列为()。 A.fedcba B. bcafed C. dcefba D. cabdef ()9. 若用一个大小为6的数组来实现循环队列,且当前rear和front的值分别为0和3,当从队列中删除一个元素,再加入两个元素后,rear和front的值分别为多少?( ) A. 1和5 B. 2和4 C. 4和2 D. 5和1 ()10. 设有一个10阶的对称矩阵A,采用压缩存储方式,以行序为主存储,a0,1为第一元素,其存储地址为1,每个元素占一个地址空间,则a5,8(即该元素下标i=5,j=8)的地址为()。 A. 41 B. 23 C. 19 D. 44 ()11. 一棵二叉树的先序遍历结果为ABCDEFGHK,中序遍历结果为BDCAEHGKF,则后序遍历结果为() A. KHGFEDCBA B. DCBHKGFEA C. DCBEHKGFA D. 不确定 ()12. 设树T的度为4,其中度为1,2,3和4的结点个数分别为4,3,2,1 则T中的叶子数为() A .11 B .10 C .9 D .8 ()13. 一个具有2000个结点的完全二叉树中度为2的结点个数是() A. 1000 B. 1001 C. 999 D.1002 ()14.若X是二叉中序线索树中一个有左孩子的结点,且X不为根,则x的前驱为( ) A.X的左孩子指针所指结点 B.X的右子树中最左的结点 C.X的左子树中最右结点 D.X的左子树中最左结点 ()15. 由权值为4、2、5、7的四个叶子构造一棵哈夫曼树,该树的带权路径长度为() A.33 B. 35 C. 36 D. 46 ()16. 在一个图中,所有顶点的度数之和与图的边数的比是()A.1:2 B.1:1 C.2:1 D.不确定 ()17. 无向图G=(V,E),其中: V={a,b,c,d,e,f},E={(a,b),(a,e),(a,c),(b,e),(c,f),(f,d),(e,d)},对该图进

相关文档
相关文档 最新文档