考研资料数据结构试卷A1-答案

合集下载

数据结构考研真题和答案

数据结构考研真题和答案

数据结构考研真题和答案数据结构是计算机科学中的重要基础课程,对于计算机专业的学生而言,掌握好数据结构非常关键。

考研阶段,数据结构也是一个必考科目。

本文将介绍一些常见的数据结构考研真题以及详细的答案解析,希望能帮助同学们更好地备考。

1. 简述线性表的定义,举例说明线性表的应用场景。

线性表是数据结构中最基本的一种结构,它是由相同数据类型的有限个数据元素组成的序列。

线性表的特点是存储结构唯一,数据元素之间是一对一的关系。

在实际应用中,线性表常用来表示一组某种类型的数据集合,例如存储学生的学号信息、存储职工的工号信息等。

2. 解释栈的特点及其应用场景。

栈是一种特殊的线性表,它的特点是只能在表的一端进行插入和删除操作,表的另一端称为栈顶。

栈的插入操作称为入栈,删除操作称为出栈。

栈的特点是后进先出(LIFO),即最后插入的元素最先被删除。

栈在实际应用中有很多场景,例如函数调用栈、表达式求值、撤销操作等。

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

队列也是一种特殊的线性表,它的特点是只允许在表的一端进行插入操作,而在另一端进行删除操作。

队列的插入操作称为入队,删除操作称为出队。

队列的特点是先进先出(FIFO),即最先插入的元素最先被删除。

队列在实际应用中有很多场景,例如排队、任务调度、消息队列等。

4. 什么是树结构?请简要介绍树结构的一些应用。

树是一种非线性的数据结构,它由n(n>=1)个有限节点组成一个具有层次关系的集合。

树的特点是一个节点可以有多个子节点,但是只能有一个父节点,除根节点外,每个节点可以有多个子节点。

树结构在实际应用中广泛存在,例如文件系统、组织结构、网络拓扑等。

5. 解释二叉树的定义,并给出一种常见的二叉树结构。

二叉树是一种特殊的树结构,它的每个节点最多有两个子节点,分别称为左子节点和右子节点。

二叉树的定义为一个有限的节点集合,该集合可以为空,如果非空则必须满足:(1)有且仅有一个称为根的节点;(2)该节点的左子树和右子树也是二叉树。

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

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

一、选择题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)是非线性数据结构。

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

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

一、选择题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) 的算法在时间上总是优于复杂度nO(2 )的算法(3)所谓时间复杂度是指最坏情况下,估算算法执行时间的一个上界(4)同一个算法,实现语言的级别越高,执行效率就越低 4A .(1) B.(1),(2) C. (1),(4) D.(3)7.从逻辑上可以把数据结构分为( C )两大类。

【武汉交通科技大学1996 一、4(2 分)】A.动态结构、静态结构 B .顺序结构、链式结构C.线性结构、非线性结构 D .初等结构、构造型结构8.以下与数据的存储结构无关的术语是( D )【。

数据结构的考研题库及答案

数据结构的考研题库及答案

数据结构的考研题库及答案数据结构是计算机科学中非常重要的一门学科,它研究的是如何组织和管理数据以及数据之间的关系。

对于考研学生来说,数据结构是一个必考的科目,因此熟悉考研题库及答案对于备考非常重要。

一、数据结构的考研题库数据结构的考研题库通常包含选择题和填空题两种类型。

选择题是通过给定的选项选择正确答案,而填空题则需要考生填写正确的答案。

在选择题中,常见的考点包括线性表、栈和队列、树和二叉树、图等。

例如,考生可能会遇到如下题目:下列关于栈的说法中,错误的是(A)栈是一种先进后出的数据结构(B)栈的插入操作称为入栈(C)栈的删除操作称为出栈(D)栈的插入和删除操作都在栈顶进行。

正确答案是(A)栈是一种先进后出的数据结构。

填空题则更加注重对知识点的理解和应用。

例如,考生可能会遇到如下题目:设有一个长度为n的线性表L,其中元素按非递增顺序排列。

设计一个算法,删除线性表中所有值相同的元素,要求时间复杂度为O(n)。

正确答案是:从前向后扫描线性表,用一个变量count记录不同元素的个数,然后将不同的元素依次放到线性表的前count个位置。

二、数据结构的考研答案对于考生来说,除了了解考研题库外,掌握正确的答案也是备考的重要一环。

在选择题中,正确答案通常是通过对题目进行分析和推理得出的。

考生需要仔细阅读题目,理解题意,然后根据自己对知识点的掌握程度选择正确答案。

在填空题中,考生需要根据题目要求,运用所学的知识点进行分析和解答。

对于一些较难的填空题,考生可以通过构造示例或者推导过程来得到答案。

除了了解答案外,考生还需要掌握解题的方法和技巧。

对于选择题,考生可以通过排除法和对选项进行比较来确定正确答案。

对于填空题,考生可以根据题目给出的条件和要求,运用相应的算法和数据结构进行求解。

三、备考数据结构的建议备考数据结构,考生需要系统地学习相关的知识点,并进行大量的练习和总结。

以下是一些建议:1. 系统学习:根据教材或者相关资料,系统地学习数据结构的基本概念、常见算法和数据结构的实现方法等。

名校BD、QH十套数据结构试题及答案

名校BD、QH十套数据结构试题及答案

名校十套经典考研数据结构复试题数据结构试卷(一)一、单选题(每题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进制表示。

A.688 B.678 C.692 D.6965.树最适合用来表示( )。

A.有序数据元素B.无序数据元素C.元素之间具有分支层次关系的数据D.元素之间无联系的数据6.二叉树的第k层的结点数最多为( ).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的元素有()个,A.1 B.2 C.3 D.410.设有6个结点的无向图,该图至少应有( )条边才能确保是一个连通图。

A.5B.6C.7D.8二、填空题(每空1分,共26分)1.通常从四个方面评价算法的质量:_________、_________、_________和_________。

数据结构考研复习题--第二章--线性表(带答案)

数据结构考研复习题--第二章--线性表(带答案)

第2章线性表一选择题1.下述哪一条是顺序存储结构的优点?()【北方交通大学 2001 一、4(2分)】A.存储密度大 B.插入运算方便 C.删除运算方便 D.可方便地用于各种逻辑结构的存储表示2.下面关于线性表的叙述中,错误的是哪一个?()【北方交通大学 2001 一、14(2分)】A.线性表采用顺序存储,必须占用一片连续的存储单元。

B.线性表采用顺序存储,便于进行插入和删除操作。

C.线性表采用链接存储,不必占用一片连续的存储单元。

D.线性表采用链接存储,便于插入和删除操作。

3.线性表是具有n个()的有限序列(n>0)。

【清华大学 1998 一、4(2分)】A.表元素 B.字符 C.数据元素 D.数据项 E.信息项4.若某线性表最常用的操作是存取任一指定序号的元素和在最后进行插入和删除运算,则利用()存储方式最节省时间。

【哈尔滨工业大学 2001 二、1(2分)】A.顺序表 B.双链表 C.带头结点的双循环链表 D.单循环链表5.某线性表中最常用的操作是在最后一个元素之后插入一个元素和删除第一个元素,则采用()存储方式最节省运算时间。

【南开大学 2000 一、3】A.单链表 B.仅有头指针的单循环链表 C.双链表 D.仅有尾指针的单循环链表6.设一个链表最常用的操作是在末尾插入结点和删除尾结点,则选用( )最节省时间。

A. 单链表B.单循环链表C. 带尾指针的单循环链表D.带头结点的双循环链表【合肥工业大学 2000 一、1(2分)】7.若某表最常用的操作是在最后一个结点之后插入一个结点或删除最后一个结点。

则采用()存储方式最节省运算时间。

【北京理工大学 2000 一、1(2分)】A.单链表 B.双链表 C.单循环链表 D.带头结点的双循环链表8. 静态链表中指针表示的是(). 【北京理工大学 2001 六、2(2分)】A.内存地址 B.数组下标 C.下一元素地址 D.左、右孩子地址9. 链表不具有的特点是()【福州大学 1998 一、8 (2分)】A.插入、删除不需要移动元素 B.可随机访问任一元素C.不必事先估计存储空间 D.所需空间与线性长度成正比10. 下面的叙述不正确的是()【南京理工大学 1996 一、10(2分)】A.线性表在链式存储时,查找第i个元素的时间同i的值成正比B. 线性表在链式存储时,查找第i个元素的时间同i的值无关C. 线性表在顺序存储时,查找第i个元素的时间同i 的值成正比D. 线性表在顺序存储时,查找第i个元素的时间同i的值无关11. 线性表的表元存储方式有((1))和链接两种。

数据结构考研真题及其答案_研究生入学考试_高等教育_教育专区 数据结

数据结构考研真题及其答案_研究生入学考试_高等教育_教育专区  数据结

数据结构考研真题及其答案_研究生入学考试_高等教育_教育专区数据结结考研真题及其答案据结构是计算机科学中重要的一门课程,它研究的是如何组织和管理数据的方式。

对于计算机专业的研究生来说,数据结构是必修课程,考研真题的复习和备考对于学生来说是非常重要的。

在本文中,我们将介绍一些数据结构考研真题及其答案,帮助学生更好地复习和备考。

第一题:给出以下数据结构中各个操作的时间复杂度:数组、链表、堆、栈、队列。

答案:数组的插入和删除操作的时间复杂度为O(n),查找操作的时间复杂度为O(1);链表的插入和删除操作的时间复杂度为O(1),查找操作的时间复杂度为O(n);堆的插入、删除和查找操作的时间复杂度都为O(logn);栈的插入、删除和查找操作的时间复杂度都为O(1);队列的插入、删除和查找操作的时间复杂度都为O(1)。

第二题:给出以下数据结构的特点:栈、队列、堆、二叉树、图。

答案:栈是一种后进先出(LIFO)的数据结构,只能在一端进行插入和删除操作;队列是一种先进先出(FIFO)的数据结构,插入操作在一端进行,删除操作在另一端进行;堆是一种完全二叉树,具有父节点的值大于等于子节点的值(大顶堆)或父节点的值小于等于子节点的值(小顶堆)的性质;二叉树是一种每个节点最多有两个子节点的树;图是由节点和连接节点的边组成的数据结构。

第三题:给定一个有序数组,要求在其中查找一个元素的位置并返回,如果找不到则返回-1,设计一个算法实现上述功能。

答案:可以使用二分查找算法来实现上述功能。

首先,将要查找的元素与有序数组的中间元素进行比较,如果相等,则返回中间元素的位置;如果要查找的元素小于中间元素,则在数组的前半部分继续进行二分查找;如果要查找的元素大于中间元素,则在数组的后半部分继续进行二分查找。

重复这个过程,直到找到要查找的元素或者确定元素不存在为止。

第四题:给出以下排序算法的时间复杂度:冒泡排序、插入排序、选择排序、快速排序、归并排序。

《数据结构》历年考研真题及解答

《数据结构》历年考研真题及解答

《数据结构》考研真题及解答目录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 分)带权图(权值非负,表示边连接的两顶点间的距离)的最短路径问题是找出从初始顶点到目标顶点之间的一条最短路径。

武汉科技大学2022年《数据结构(C语言)》考研真题与答案解析

武汉科技大学2022年《数据结构(C语言)》考研真题与答案解析

武汉科技大学2022年《数据结构(C语言)》考研真题与答案解析一、选择题1. 计算算法的时间复杂度是属于一种()的方法。

A)事前统计B)事前分析估算C)事后统计D)事后分析估算2. 数据的逻辑结构可以分为()。

A)静态结构和动态结构B)物理结构和存储结构C)线性结构和非线性结构D)虚拟结构和抽象结构3. 线性表若采用链式存储结构时,要求内存中可用存储单元的地址()。

A)必须是连续的B)部分地址必须是连续的C)一定是不连续的D)连续不连续都可以4. 线性表既可以用带头结点的链表表示,也可以用不带头结点的链表表示,前者最主要好处是()。

A)使空表和非空表的处理统一B)可以加快对表的遍历C)节省存储空间D)可以提高存取表元素的速度5. 若用一个大小为6的数组来实现循环队列,且当前rear和front的值分别为0和3。

当从队列中删除一个元素,再加入两个元素后,rear 和front的值分别为()。

A)1和5 B)2和4 C)4和2 D)5和16. 对二叉树T中的某个结点x,它在先根序列、中根序列、后根序列中的序号分别为pre(x),in(x)、post(x),a和b是T中的任意两个结点,下列选项一定错误的是()。

A)a是b的后代且pre(a)<pre(b)B)a是b的祖先且post(a)>post(b)C)a是b的后代且in(a)<in(b)D)a在b的左边且in(a)<in(b)7. 若二叉树的前序序列和后序序列正好相反,则该二叉树一定是()的二叉树。

A)空或只有一个结点B)任一结点无左子树C)任一结点无右子树D)高度等于其结点数8. 下面几个符号串编码集合中,不是前缀编码的是()。

A){0,10,110,1111} B){11,10,001,101,0001}C){00,010,0110,1000} D){b,c,aa,ac,aba,abb,abc}9. 一个n个顶点的连通无向图,其边数至少为()。

最新计算机全国考研数据结构试卷一(练习题含答案)打印版.doc

最新计算机全国考研数据结构试卷一(练习题含答案)打印版.doc

数据结构试卷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.688 B.678 C.692 D.6965.树最适合用来表示( )。

A.有序数据元素B.无序数据元素C.元素之间具有分支层次关系的数据D.元素之间无联系的数据6.二叉树的第k层的结点数最多为( ).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个记录的文件进行快速排序,所需要的辅助存储空间大致为n) D. O(n2) A. O(1) B. O(n) C. O(1og29.对于线性表(7,34,55,25,64,46,20,10)进行散列存储时,若选用H(K)=K %9作为散列函数,则散列地址为1的元素有()个,A.1 B.2 C.3 D.410.设有6个结点的无向图,该图至少应有( )条边才能确保是一个连通图。

A.5B.6C.7D.8二、填空题1.通常从四个方面评价算法的质量:_________、_________、_________和_________。

2.一个算法的时间复杂度为(n3+n2log2n+14n)/n2,其数量级表示为________。

2012年云南昆明理工大学数据结构考研真题A卷

2012年云南昆明理工大学数据结构考研真题A卷

2012年云南昆明理工大学数据结构考研真题A卷一、单项选择题:(每题3分,共30分)1.长度为n的顺序表,等概率情况下插入一个元素时平均要移动表中的()个元素。

A.n/2 B.(n+1)/2 C.(n-l)/2 D.n2.循环队列Q的存储空间为0至m-1,用front表示队头,用rear表示队尾,采用少用一个单元的方法来区分队列空和满,那么循环队列满的条件是()。

A.Q.rear+l==Q.front B.(Q.rear+1)%m==Q.frontC. Q.front+l==Q.rear D.(Q.front+l)%m==Q.rear3.若从二叉树的任意结点出发到根的路径上所经过的结点序列按其关键字有序,则该二叉树是()。

A.二叉排序树 B.完全二叉树 C.堆 D.平衡二叉树4.给定关键字的集合为{20,15,14,18,21,36,40,10},一趟快速排序结束时键值的排列为()。

A.10,15,14,18,20,36,40,21 B.10,15,14,18,20,40,36,21C.10,15,14,20,18,40,36,21 D.15,10,14,18,20,36,40,215.在一棵度为3的树中,度为3的结点有2个,度为2的结点有1个,度为1的结点有3个,那么该树有()个叶结点。

A.4 B.5 C.6 D.76.下列排序方法在排序过程中,关键码比较的次数与记录的初始排列顺序无关的是()。

A.直接插入排序和快速排序 B.快速排序和归并排序C.直接选择排序和归并排序 D.直接插入排序和归并排序7.具有4层结点的二叉平衡树至少有()个结点。

A.8 B.6 C.15 D.78.当输入数据非法时,一个好的算法应该作出适当的处理,而不会产生莫名其妙的结果,这称做算法的()。

A.正确性 B.可读性 C.健壮性 D.有穷性9.三元组表用于表示()。

A.线性表 B.索引表 C.广义表 D.稀疏矩阵10.对于初始状态递增有序的表按从小到大的次序排序,时间效率最高的是()。

2016年武汉科技大学856数据结构考研真题(A卷)

2016年武汉科技大学856数据结构考研真题(A卷)

2016 年武汉科技大学 856 数据结构(C 语言版)考研真题( A 卷)1.以下说法正确的是( )。

(分数: 2.00 )A.数据元素是数据的最小单位B. 数据项是数据的基本单位C. 数据结构是带有结构的各数据项的集合D. 一些表面上很不相同的数据可以有相同的逻辑结构 解析: 2. 在顺序表(长度为 127 )中插入一个元素平均要移动(A. 8B. 63.5 √C. 63D.7 解析:3. 若完全二叉树的结点总数为 1001 ,则度为 1 的结点有(A. 0 √B. 1C. 500D. 501 解析:A.左兄弟B. 右兄弟C. 祖先 √D.后裔解析: 5.二叉树在线索化后,仍不能有效求解的问题是( )。

(分数: 2.00 )A.前序线索二叉树中求前序后继B. 中序线索二叉树中求中序后继C. 中序线索二叉树中求中序前驱D. 后序线索二叉树中求后序后继 √( 总分: 150.00 ,做题时间: 180 分钟 )、选择题 (总题数: 10, 分数: 20.00) )个元素。

(分数: 2.00 ))个。

(分数: 2.00 )4.二叉树先序遍历 x 在 y 之前,后序遍历 x 在 y 之后,则 是 y 的( )。

(分数: 2.00 )解析:6. 下列关于AOE 网的叙述中,不正确的是()。

(分数: 2.00 )A. 某些关键活动提前,则整个工程将会提前完成√B.任一关键活动提前,则整个工程将会提前完成C.所有关键活动提前,则整个工程将会提前完成D.关键活动不按期完成会影响整个工程的完成时间解析:7.12 个数据有序顺序存储,采用二分查找,查找失败时的ASL 值是()。

(分数:2.00 )A.37/12B.63/13C.39/12D.49/13 √ 解析:8. 二叉查找树的查找效率与二叉树的()有关。

(分数: 2.00 )A.高度B. 结点的多少C. 树型√D.结点的位置解析:9. 用函数H(k)=key%17 构造散列表,则链地址法解决冲突需()个链表。

考研数据结构试题及答案

考研数据结构试题及答案

考研数据结构试题及答案一、选择题(每题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. 描述排序算法中的稳定性和不稳定性,并给出一个稳定性排序算法的例子。

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

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

数据结构——考试题库及答案

数据结构——考试题库及答案
设 m,n 是一棵二叉树上的两个结点,中序遍历时,n 在 m 之前的条件是__ ______。
收藏 A. n 是 m 子孙 B. n 在 m 右方 C. n 在 m 左方 D. n 是 m 祖先
回答错误!正确答案: C
具有 100 个结点的完全二叉树的深度为________。
收藏 A. 8 B. 6 C. 7 D. 9
回答错误!正确答案: C
有一个有序表{1,3,9,12,32,41,45,62,75,77,82,95,100}中折 半查找值为 82 的结点时,_______次比较后查找成功。
收藏 A. 2 B. 4 C. 1 D. 8
回答错误!正确答案: B
已知二叉树的后序遍历序列是 dabec,中序遍历序列是 debac,则它的先序遍历 序列是________。
收藏 A. 5 B. 3 C. 4 D. 6
回答错误!正确答案: A
下列函数中,时间复杂度最小的是________。
收藏 A. nlogn+5000n B. n^logn-6000n C. n^2-8000n D. 10nlogn-7000n
回答错误!正确答案: A
单链表是一种________的存储结构。
对序列{22,86,19,49,12,30,65,35,18}进行一趟排序后得到的结果为{12,86,19,4 9,22,30,65,35,18},则其使用的排序方法为( )。
收藏 A. 选择排序 B. 冒泡排序 C.
插入排序 D. 快速排序
回答错误!正确答案: A
字符串是一种特殊的线性表,其特殊性在于它的数据元素只能是______ __。
收藏 A. 15 B. 12 C. 16 D. 11
回答错误!正确答案: A

考研数据结构试题(含答案)

考研数据结构试题(含答案)

考研数据结构试题(含答案)我以⼀名⼤学⽣的⼈格尊严保证,在本场考试中,⾃觉遵守考试纪律,服从考试管理,决不作弊或帮助别⼈作弊!签名:学院专业学号级班··················密···················封·····················线··················命题⼈签字:系主任签字:审核院长签字:共印份数:第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 )。

计算机数据结构今年考研真题及答案(供参考)

计算机数据结构今年考研真题及答案(供参考)

20091.为解决心算机与打印机之间速度不般配的问题,往常设置一个打印数据缓冲区,主机将要输出的数据挨次写入该缓冲区,而打印机则挨次从该缓冲区中取出数据。

该缓冲区的逻辑结构应当是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 可能拥有的关系是系III.u 的父结点与 v 的父结点是兄弟关系A.只有 IIB.I 和 IIC.I 和 IIID.I 、II 和 IIIu 是结点 vI.父子关系的父结点的II. 兄弟关7.以下对于无向连通图特征的表达中,正确的选项是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 分)带权图(权值非负,表示边连结的两极点间的距离)的最短路径问题是找出从初始极点到目标极点之间的一条最短路径。

考研数据结构习题及参考答案

考研数据结构习题及参考答案

习题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. 下面哪一个不是线性结构的特点?()A. 有且只有一个根结点B. 每个结点最多有一个前驱,最多有一个后继C. 至少有一个结点D. 结构中任意两个结点都可以相邻答案:D解析:线性结构的特点包括有且只有一个根结点,每个结点最多有一个前驱,最多有一个后继,至少有一个结点。

而结构中任意两个结点都可以相邻并不是线性结构的特征。

2. 下面关于栈的叙述中,正确的是()A. 栈是一种先进先出的线性表B. 栈是一种后进先出的线性表C. 栈是一种随机存取的线性表D. 栈是一种非线性结构答案:B解析:栈是一种后进先出的线性表,即最后进入的元素最先被删除。

二、填空题3. 一个栈的初始状态为空。

首先将元素5、3、2依次进栈,然后退栈一次,再进栈一个元素6,然后再退栈三次,此时栈顶元素的值为______。

答案:2解析:元素进栈的顺序是5、3、2,退栈一次后栈顶元素是3,再进栈一个元素6,栈顶元素变为6,退栈三次后,栈顶元素是2。

4. 设栈S和队列Q的初始状态都为空。

元素a、b、c、d、e依次进栈S,然后再依次出栈,并将出栈的元素放入队列Q 中,则队列Q的元素顺序是______。

答案:e d c b a解析:元素a、b、c、d、e依次进栈后,出栈顺序是e、d、c、b、a,因此队列Q的元素顺序也是e、d、c、b、a。

三、判断题5. 在链表中,存储结点包含数据域和指针域两部分。

()答案:正确解析:链表中的每个存储结点确实包含数据域和指针域两部分,其中数据域存储元素值,指针域存储下一个结点的地址。

6. 二分查找法适用于顺序存储的有序表。

()答案:正确解析:二分查找法只适用于顺序存储的有序表,因为它是通过比较中间元素与目标值的大小来逐步缩小查找范围的。

四、应用题7. 设有一个长度为12的线性表,元素依次为(a1, a2, a3, ..., a12),采用二分查找法查找元素a7,请写出查找过程。

《数据结构与算法》考研真题精选-1

《数据结构与算法》考研真题精选-1

《数据结构与算法》考研真题精选一、选择题1.若查找每个记录的概率均等,则在具有n个记录的连续顺序文件中采用顺序查找法查找一个记录,其平均查找长度ASL为( )。

A.(n-1)/2 B. n/2 C. (n+1)/2 D. n2. 对N个元素的表做顺序查找时,若查找每个元素的概率相同,则平均查找长度为( )A.(N+1)/2 B. N/2 C. N D. [(1+N)*N ]/23.顺序查找法适用于查找顺序存储或链式存储的线性表,平均比较次数为((1)),二分法查找只适用于查找顺序存储的有序表,平均比较次数为((2))。

在此假定N为线性表中结点数,且每次查找都是成功的。

A.N+1B.2log2NC.logND.N/2E.Nlog2NF.N24. 下面关于二分查找的叙述正确的是( )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.1B. 4C. 2.5D. 510. 折半查找的时间复杂性为()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. 结点太复杂。

计算机数据结构今年考研真题及答案

计算机数据结构今年考研真题及答案

20091.为解决电脑与打印机之间速度不匹配的问题,通常设置一个打印数据缓冲区,主机将要输出的数据依次写入该缓冲区,而打印机则依次从该缓冲区中取出数据。

该缓冲区的逻辑结构应该是4.以下二叉排序树中,满足平衡二叉树定义的是5.已知一棵完全二叉树的第6层〔设根为第1层〕有8个叶结点,则完全二叉树的结点个数最多是A.只有IIB.I和IIC.I和IIID.I、II和III7.以下关于无向连通图特性的表达中,正确的选项是8.以下表达中,不符合m阶B树定义要求的是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是采用以下排序方法之一得到的第二趟排序后的结果,则该排序算法只能是41.〔10分〕带权图〔权值非负,表示边连接的两顶点间的距离〕的最短路径问题是找出从初始顶点到目标顶点之间的一条最短路径。

假定从初始顶点到目标顶点之间存在路径,现有一种解决该问题的方法:①设最短路径初始时仅包含初始顶点,令当前顶点u为初始顶点;②选择离u最近且尚未在最短路径中的一个顶点v,加入到最短路径中,修改当前顶点u=v;③重复步骤②,直到u是目标顶点时为止。

请问上述方法能否求得最短路径?假设该方法可行,请证明之;否则,请举例说明。

42.〔15data link假设该链表只给出了头指针list。

在不改变链表的前提下,请设计一个尽可能高效的算法,查找链表中倒数第k个位置上的结点〔k为正整数〕。

假设查找成功,算法输出该结点的data值,并返回1;否则,只返回0。

要求:〔1〕描述算法的基本设计思想〔2〕描述算法的详细实现步骤〔3〕根据设计思想和实现步骤,采用程序设计语言描述算法〔使用C或C++或JA V A语言实现〕,关键之处请给出简要注释。

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

考试科目名称 数据结构 (A1卷)考试方式:闭卷 考试日期 年 月 日 教师 系(专业) 计算机科学与技术系 年级 二 班级 学号 姓名 成绩 题号 一 二 三 四 五 六 七 八 九 十 分数1、填空题。

(每小题2分,本题满分20分)(1) C++语言中,数组是按行优先顺序存储的,假设定义了一个二维数组A[20][30],每个元素占两个字节,其起始地址为2140,则二维数组A 的最后一个数据元素的地址为 2140+2*(30*20-1) = 3338(3338,3339) 。

(2) 若A ,B 是两个单链表,链表长度分别为n 和m ,其元素值递增有序,将A 和B 归并成一个按元素值递增有序的单链表,并要求辅助空间为O(1),则实现该功能的算法的时间复杂度为 O(m+n) 。

(3) 快速排序的平均时间复杂度是____n*lg n___________。

(4) 假设有一个包含9个元素的最小堆,存放在数组A 中,则一定比A[3]大的元素有__2 (A[7],A[8]) ____个;一定比A[3]小的元素有__2 (A[0],A[1])____个。

(元素从第0个位置开始存放)(5) 广义表(((A)),(B,C), D, ((A), ((E,F)))) 的长度是 4 ,深度是 4 。

(6) 有10个元素的有序表,采用折半查找,需要比较4次才可找到的元素个数为____3_____。

(7)当两个栈共享一存储区时,栈利用一维数组A[n]表示,两栈顶指针为top[0]与top[1],则栈满时的判断条件为___top[0]+1=top[1]_ 或者 top[0] = top[1]+1 ___。

(8) 假设计算斐波那契数的函数Fib(long n)定义如下:long Fib(long n){ if(n<=1) return n;else return Fib(n-1)+Fib(n-2) }计算Fib(5)时的递归调用树(即指明函数调用关系的树)的高度是___4 _____。

假设叶子结点所在的高度为0。

(9) 完全二叉树按照层次次序,自顶向下,同层从左到右顺序从0开始编号时,编号为i 的结点的左子结点的编号为___2*i+1______。

(10) 假设用子女—兄弟链表方式表示森林,对应的二叉树的根结点是p ,那么森林的第三棵树的根结点在二叉树中对应的结点是: ___p->rightchild->rightchild____________。

假设二叉树的结点结构为:得分leftchild data rightchild2、选择题。

(每小题2分,本题满分20分)(1) 如果能够在只知道指针p指向链表中任一结点,不知道头指针的情况下,将结点*p从链表中删除,则这个链表结构应该是:(B,C)(多选题)A. 单链表B. 循环链表C. 双向链表D. 带头结点的单链表(2) 以下哪种矩阵压缩存储后会失去随机存取的功能?( A)A. 稀疏矩阵B. 对称矩阵C. 对角矩阵D. 上三角矩阵(3) 下面哪一方法可以判断出一个有向图是否有环(回路):( B) (选A,B也对)A. 广度优先遍历B. 拓扑排序C. 求最短路径D.求关键路径(4) n个结点的线索二叉树(没有头结点)上含有的线索数为(B)A. 2nB. n-lC. n+lD. n(5) 循环队列存储在数组A[0..m]中,则入队时队尾指针rear的操作为( D)A. rear=rear+1B. rear=(rear+1) mod (m-1)C. rear=(rear+1) mod mD. rear=(rear+1)mod(m+1)(6) 使用加权规则得到改进的Union操作WeightedUnion,其目的是:( B )A. 提高Union操作的时间性能B. 提高Find操作的时间性能C. 减少Union操作的空间存储D. 减少Find操作的空间存储(7) 使用Kruscal算法求解最小生成树时,为了设计效率较高的算法, 数据结构方面可以选择:(A)A. 利用最小堆存储边B. 利用栈存储结点C. 利用二维数组存储结点D. 利用并查集存储边(8) 已知一算术表达式的后缀形式为ABC*+DE/-,其前缀形式为:( D )A. -A+B*C/DEB. -A+B*CD/EC. -+*ABC/DED. -+A*BC/DE(9) n个关键码排序,如果选用直接插入排序方法,则元素的移动次数在最坏情况下可以达到( B )。

A. n*n/2B. n*(n-1)/2C. n/2D. (n-1)/2(10) 关键路径是AOE网络中A C。

(多选)A. 从源点到汇点的最长路径B. 从源点到汇点的最短路径C. 所有活动都是关键活动的路径D. 最短回路3、简答题。

(每小题5分,本题满分20分)(1)对如下无向图,按照Dijkstra算法,写出从顶点1 到其它各个顶点的最短路径和最短路径长度。

1 3 52 4 6结点编号 1 2 3 4 5 6 路径长度 0 117121415最短路径 1 1-2 1-3 1-3-4 1-3-5 1-3-6(2)请画出在如下图所示的5阶B 树中插入一个关键码360后得到的B 树。

100 200 300 40020 40 150 180 240 260 310 320 350 370 420 430300100 200 350 40020 40 150 180 240 260 310 320 360 370 420 430(3) 假设有权值集合{16,40,15,4,25},给出相应的huffman 树。

假设某类信息由符号a,b,c,d,e,组成,而上面的权值分别是符号a,b,c,d,e 的出现频率。

请给出各个符号的Huffman 编码。

Huffman 编码: a: 001 b: 1 c: 0001 d: 0000 e: 01注意:因为左右子树不同, 所以编码可以有多种,但是只要7 10 5 8 6 911 7 191635256040100其长度分别是3,1,4,4,2;且 相互之间不形成前缀关系就 是正确的。

(4)在AVL 树的插入操作中,假设插入一个结点后,当前节点p 的平衡因子是-2,其左子结点的平衡因子是+1,左子结点的右子结点的平衡因子是-1。

如图所示,请给出旋转调整之后的结构。

4、已知输入关键码序列为(10,90,20,60,78,35,42,31,15),地址区间为0~11。

(1) 请设计一个散列函数,把上述关键码散到0~11中。

画出散列表,冲突用线性探测法解决。

(5分)散列函数为:f(x) = x % 12 允许其它的散列函数1234567891011得分AB Ct1t2t3t4-2+1-1 p pACBt1t2t3t4+1-1(2) 搜索元素31需要比较的次数是多少?(2分)7 (7-->8->9->10->11->0->1 (成功))(3) 计算在等概率情况下查找成功的平均查找长度ASLsucc。

(3分)(1+7+1+1+2+1+4+1+1) / 9 = 19/95、程序设计题。

(每小题15分,本题满分30分)1. 设计一个算法,根据一棵二叉树的前序序列和中序序列,构造出这棵二叉树。

二叉树的结点都用字符表示。

前序序列和中序序列都是字符串。

二叉树的结点定义如下:struct binTreeNode{char data;binTreeNode *leftChild, *rightChild;}解:TreeNode * tree(char *preorder, *midorder){returnTreeRecursive(preorder, 0, strlen(preorder)-1, midorder, 0, strlen(midorder)-1); }TreeNode * TreeREcursive(char *pre, int preSt, int preEnd,char* mid, int midSt, int midEnd){if (preEnd < preSt)return NULL;char rt = pre[preSt];for(int j = midSt; j<=midEnd; j++)if(mid[j] == rt) break;if(j>midEnd){cout<<"Wrong input"; return NULL;}TreeNode root = new binTreeNode( );root->data = rt;int lLen = j - midSt;root->leftChild = treeRecursive(pre, preSt+1, preSt+lLen - 1,mid, midSt,midSt+lLen-1);root->rightChild=treeRecursive(pre, preSt+lLen+1, preEnd,mid, midSt+lLen+1, midEnd);return root;}要点在于根据preOrder的第一个字符,在midOrder中找到左右子树的分界;然后递归调用生成左右子树;做到这一点,就可以给出大部分分数。

可能有很多细节上不一样的地方,比如这里的preEnd指向的字符在相应的树中;但是有些人可能是preEnd指向下一个位置。

或者传递参数时直接使用字符串传递。

都是可以的。

如果使用别的办法,参考其效率,酌情给分。

只要效率过得去,也可以得满分。

但是纯粹枚举则得分不高。

2. 设计非递归算法实现图的深度优先遍历。

(图用邻接表表示,已经定义了一个顺序栈stack[top],top为栈顶指针,使用visit(node)来表示对顶点node的访问。

)图的邻接表结构定义如下:struct Edge {int dest;Edge *link; //下一条边链指针}struct Vertex {int data;Edge *adj; //边链表的头指针}class Graph {private:Vertex *Nodetable; //顶点表int cnt}解:Graph : :DFS(int v)//从v开始搜索;{bool visited[MAXVert];Edge nextEdge[MAXVert];stack[0] = v;nextEdge[0] = graph.Nodetable[v].adj;top = 0;visited(stack[top]);visited[stack[top]] = true;while(top >= 0){while(nextEdge[top] && visited[nextEdge[top]->dest])//寻找下一个尚未访问的邻接节点nextEdge[top] = nextEdge[top]->link;if(nextEdge[top] != NULL){int nextVert = nextEdge[top]->dest;visite(nextVert); //访问下一个邻接结点;保证了被压入栈中的顶点都被访问;visited[nextVert] = true;stack[top+1] = nextVert; //压栈,进入下一个结点;nextEdge[top+1] = Nodetable[nextVert].adj;nextEdge[top] = nextEdge[top]->link;top ++;}else top --;}}。

相关文档
最新文档