2018中国农业大学821考研数据结构真题

合集下载

中国农业大学_821数据结构_《数据结构》习题(6)

中国农业大学_821数据结构_《数据结构》习题(6)

第6章 二叉树与树一、回答题1. 图6-1所示的树的叶子结点、非中端结点、每个结点的度及树的深度各是多少?图6-1 树2. 已知一棵树边的集合表示为:{ ( L, N ), ( G, K ), ( G, L ), ( G, M ), ( B, E ), ( B, F ), ( D, G ), ( D, H ), ( D, I ), ( D, J ), ( A, B ), ( A, C ), ( A, D ) },画出这棵树,并回答以下问题:(1) 树的根结点是哪个?哪些是叶子结点?哪些是非终端结点? (2) 树的度是多少?各个结点的度是多少? (3) 树的深度是多少?各个结点的层数是多少?(4) 对于结点G ,它的双亲结点、祖先结点、孩子结点、子孙结点、兄弟和堂兄弟分别是哪些结点?3. 如果一棵度为m 的树中,度为1的结点数为n 1,度为2的结点数为n 2,……,度为m 的结点数为n m ,那么该树中含有多少个叶子结点?有多少个非终端结点?ABECDFGHJI4. 任意一棵有n 个结点的二叉树,已知有m 个叶子结点,能否证明度为2结点有m-1个?5. 已知在一棵含有n 个结点的树中,只有度为k 的分支结点和度为0的叶子结点,那么该树含有的叶子结点的数目是多少?6. 一棵含有n 个结点的k 叉树,可能达到的最大深度和最小深度各为多少?7. 对于3个结点A 、B 、C ,可以过程多少种不同形态的二叉树?8. 深度为5的二叉树至多有多少个结点?9. 任何一棵二叉树的叶子结点在先序、中序和后序遍历中的相对次序是发生改变?不发生改变?不能确定?10. 设n 、m 为一棵二叉树上的两个结点,在中序遍历时,n 在m 前的条件是什么? 11. 已知某二叉树的后续遍历序列是dabec ,中序遍历序列是debac ,那么它的前序遍历序列是什么?12. 对一棵满二叉树,m 个树叶,n 个结点,深度为h ,则n 、m 和h 之间的关系是什么? 13. 对图6-2(a)和(b)所示的二叉树,它们的经过先序、中序和后序遍历后得到的结点序列分别是什么?画出它们的先序线索二叉树和后序线索二叉树。

中国农业大学_821数据结构_《数据结构》实验笔记(3)

中国农业大学_821数据结构_《数据结构》实验笔记(3)

实验3 栈和队列课程实验共安排8个难度各易的实验,训练重点在于掌握基本的数据结构,而不强调面面俱到。

通过实验,掌握抽象数据类型的概念和基本数据结构,掌握各种数据结构内在的逻辑关系,各种数据结构在计算机中的存储表示,基于各种数据结构上的基本运算、算法实现及算法分析。

●实验目的(1) 掌握栈和队列的顺序存储结构和链式存储结构,以便在实际背景下灵活运用。

(2) 掌握栈和队列的特点,即“先进后出”与“先进先出”的原则。

(3) 掌握栈和队列的基本运算,比如入栈与出栈、入队与出队等运算在顺序存储结构和链式存储结构上的实现。

●实验内容1. 停车场管理[问题描述] 设有一个可以停放n辆汽车的狭长停车场,它只有一个大门可以供车辆进出。

车辆按到达停车场时间的早晚依次从停车场最里面向大门口处停放(最先到达的第一辆车放在停车场的最里面)。

如果停车场已放满n辆车,则后来的车辆只能在停车场大门外的便道上等待,一旦停车场内有车开走,则排在便道上的第一辆车就进入停车场。

停车场内如果有某辆车要开走,那么在它之后进入停车场的车都必须先退出停车场为它让路,待其开出停车场后,这些车辆再依原来的次序进场。

每辆车在离开停车场时,都应该根据它在停车场内停留的时间长短交费。

如果停留在便道上的车未进停车场就要离去,那么允许其离去,不收停车费,并且仍然保持在便道上等待的车辆的次序。

编制一程序模拟该停车场的管理。

[基本要求] 要求程序输出每辆车到达后的停车位置(停车场或便道上),以及某辆车离开停车场时应交纳的费用和它在停车场内停留的时间。

[实验提示] 汽车的模拟输入信息格式可以是:(到达/离去,汽车牌照号码,到达/离去的时刻)。

例如,('A', 1, 5) 表示1号牌照车在5这个时刻到达,而('D', 5, 20) 表示5号牌照车在20这个时刻离去。

整个程序可以在输入信息为('E', 0, 0) 时结束。

农大数据结构答案

农大数据结构答案

农大数据结构答案(1)将两个递增的有序链表合并为一个递增的有序链表。

要求结果链表仍使用原来两个链表的存储空间, 不另外占用其它的存储空间。

表中不允许有重复的数据。

void MergeList_L(LinkList &La,LinkList &Lb,LinkList &Lc){pa=La->next; pb=Lb->next;Lc=pc=La; //用La的头结点作为Lc的头结点while(pa && pb){if(pa->datadata){ pc->next=pa;pc=pa;pa=pa->next;}else if(pa->data>pb->data) {pc->next=pb; pc=pb; pb=pb->next;}else {// 相等时取La的元素,删除Lb的元素pc->next=pa;pc=pa;pa=pa->next;q=pb->next;delete pb ;pb =q;}}pc->next=pa?pa:pb; //插入剩余段delete Lb; //释放Lb的头结点}(2)将两个非递减的有序链表合并为一个非递增的有序链表。

要求结果链表仍使用原来两个链表的存储空间, 不另外占用其它的存储空间。

表中允许有重复的数据。

void union(LinkList& La, LinkList& Lb, LinkList& Lc, ) {pa = La->next; pb = Lb->next; // 初始化Lc=pc=La; //用La的头结点作为Lc的头结点Lc->next = NULL;while ( pa || pb ) {if ( !pa ) { q = pb; pb = pb->next; }else if ( !pb ) { q = pa; pa = pa->next; }else if (pa->data <= pb->data ) { q = pa; pa = pa->next; }else { q = pb; pb = pb->next; }q->next = Lc->next; Lc->next = q; // 插入}delete Lb; //释放Lb的头结点}(3)已知两个链表A和B分别表示两个集合,其元素递增排列。

中国农业大学_821数据结构_《数据结构》习题(2)

中国农业大学_821数据结构_《数据结构》习题(2)

第2章线性表一、回答题1. 线性表的两种存储结构各有哪些优缺点?2. 对于线性表的两种存储结构,如果有n个线性表同时并存,并且在处理过程中各表的长度会动态发生变化,线性表的总数也会自动改变,在此情况下,应该选用哪种存储结构,为什么?3. 对于线性表的两种存储结构,如果线性表的总数基本稳定,并且很少进行插入和删除操作,但是要求以最快的速度存取线性表中的元素,那么应该选用哪种存储结构?试说明理由。

二、填空题1. 已知L是无头结点的单链表,且p结点既不是第一个结点,也不是最后一个结点,试从下列提供的语句中选出合适的语句序列:(1) 在p结点之后插入s结点:(2) 在p结点之前插入s结点:(3) 在单链表L首插入s结点:(4) 在单链表L后插入s结点:提供的语句:①p->next = s;② p ->next = p ->next ->next; ③ p ->next = s ->next; ④ s ->next = p ->next; ⑤ s ->next = L; ⑥ s ->next = p; ⑦ s ->next = NULL; ⑧ q = p;⑨ while ( p ->next ! = q ) p = p ->next ; ⑩ while ( p ->next ! = NULL ) p = p ->next ; p = q; p = L; L = s; L = p;2. 已知p 结点是某双向链表的中间结点,试从下列提供的语句中选出合适的语句序列。

(1) 在p 结点之后插入s 结点: (2) 在p 结点之前插入s 结点: (3) 删除p 结点的直接后继结点: (4) 删除p 结点的直接前驱结点:提供的语句:① p ->next = p ->next ->next; ② p ->prior = p ->prior ->prior; ③ p ->next = s; ④ p ->prior = s;11 12 13 14⑤ s ->next = p; ⑥ s ->prior = p; ⑦ s ->next = p ->next; ⑧ s ->prior = p ->prior; ⑨ p ->prior ->next = p ->next; ⑩ p ->prior ->next = p; p ->next ->prior = p; p ->next ->prior = s; p ->prior ->next = s; p ->next ->prior = p ->prior; q = p ->next; q = p ->prior; delete p; delete q;3. 在顺序表中插入或删除一个数据元素,需要平均移动个元素,具体移动的元素个数与有关。

中国农业大学_821数据结构_《数据结构》模拟题及答案(3套)

中国农业大学_821数据结构_《数据结构》模拟题及答案(3套)
报考院校:
报考专业:
1 算法的优劣与算法描述语言无关,但与所用计算机有关。( ) ) 2 链表中的头结点仅起到标识的作用。( 3 有 n 个 数 顺 序 ( 依 次 ) 进 栈 , 出 栈 序 列 有 Cn 种 , Cn=[1/ ( n+1 ) ]* (2n)!/[(n!)*(n!)]。 ( ) 4 串是一种数据对象和操作都特殊的线性表。 ( ) 5 从逻辑结构上看,n 维数组的每个元素均属于 n 个向量。( ) ) 6 形结构中元素之间存在一个对多个的关系。( 7 强连通图的各顶点间均可达。 ( ) 8 在索引顺序表中,实现分块查找,在等概率查找情况下,其平均查找长度不仅 与表中元素个数有关,而且与每块中元素个数有关。( ) 9 影响外排序的时间因素主要是内存与外设交换信息的总次数。( ) ) 10 权无向图的最小生成树必是唯一的。( 三、 一棵二叉树中的结点的度或为 0 或为 2,则二叉树的枝数为 2(n0-1), 其中 n0 是度为 0 的结点的个数。
中国农业大学
2011 年攻读硕士学位研究生入学考试模拟试题(一)
科目代码: 821 科目名称: 数据结构
考生注意:所有大题务必书写在考场提供的答题纸上,写在本试题单上的答题一 律无效(本题单不参与阅卷) 。 一、选择题 1. 算法的时间复杂度取决于( ) A.问题的规模 B. 待处理数据的初态 C. A 和 B 2.下面关于线性表的叙述中,错误的是哪一个? A.线性表采用顺序存储,必须占用一片连续的存储单元。 B.线性表采用顺序存储,便于进行插入和删除操作。 C.线性表采用链接存储,不必占用一片连续的存储单元。 )中应用。 3. 栈在( A. 递归调用 B. 子程序调用 C. 表达式求值 D. A,B,C 4.设有两个串 p 和 q,其中 q 是 p 的子串,求 q 在 p 中首次出现的位置的算法 称为( ) A.求子串 B.联接 C.匹配 D.求串长 5. 数组 A[0..5,0..6]的每个元素占五个字节,将其按列优先次序存储在起始地 址为 1000 的内存单元中,则元素 A[5,5]的地址是( )。 A. 1175 B. 1180 C. 1205 D. 1210 6 在一棵高度为 k 的满二叉树中,结点总数为( ) k-1 k k A.2 B.2 C.2 -1 D.log2k+1 ) 7.哪一种图的邻接矩阵是对称矩阵?( A.有向图 B.无向图 C.AOV 网 D.AOE 网 8.动态存储管理系统中,通常可有( )种不同的分配策略。 A. 1 B. 2 C. 3 D. 4 E. 5 9 如果要求一个线性表既能较快的查找,又能适应动态变化的要求,则可采用 ( )查找法。 A. 分快查找 B. 顺序查找 C. 折半查找 D. 基于属性 10 组记录的关键码为(46,79,56,38,40,84) ,则利用快速排序的方法,以 第一个记录为基准得到的一次划分结果为( ) 。 A.(38,40,46,56,79,84) B. (40,38,46,79,56,84) C.(40,38,46,56,79,84) D. (40,38,46,84,56,79) 二、判断题

中国农业大学821数据结构考试科目大纲

中国农业大学821数据结构考试科目大纲

中国农业大学大学2015年硕士研究生入学考试专业课考试大纲一、考查目标1.理解数据结构的基本概念;掌握数据的逻辑结构、存储结构及其差异,以及各种基本操作的实现。

2.掌握基本的数据处理原理和方法的基础上,能够对算法进行设计与分析。

3.能够选择合适的数据结构和方法进行问题求解。

二、考试形式和试卷结构1.试卷满分及考试时间试卷满分150分,考试时间180分钟。

2.答题方式答题方式为笔试、闭卷。

3.试卷内容与题型结构选择题10题每小题2分共20分填空题10题每小题2分共20分判断题10题每小题2分共20分应用题4题每小题10分共40 分算法题5题每小题10分共50 分三、考查内容1.概念(1)基本概念和术语●数据●数据结构●抽象数据类型(2)算法的描述和分析●算法、算法的时间复杂度和空间复杂度概念●算法描述和算法分析的方法,对于一般算法能分析出时间复杂度2.线性表(1)线性表的概念●线性表的逻辑结构●线性表的存储结构:顺序表,单链表,双链表,循环链表(2)线性表的实现●顺序存储结构:查找、插入、删除等主要操作及其平均时间性能分析●链式存储结构:查找、插入、删除等主要操作及其平均时间性能分析3.栈、队列(1)栈和队列的概念●栈和队列的逻辑结构●栈和队列的存储结构:顺序栈,循环队列,链式栈,链式队列(2)栈和队列的实现●顺序存储结构:入栈、出栈、入队、出队等主要操作及其平均时间性能分析●链式存储结构:入栈、出栈、入队、出队等主要操作及其平均时间性能分析4.广义表(1)广义表的概念●数组和广义表的逻辑结构●数组的存储结构:特殊矩阵压缩存储、稀疏矩阵压缩存储(三元组表)●广义表的存储结构:链式存储(2)和广义表的实现●数组顺序存储结构:一般数组顺序存储的地址计算方法●广义表链式存储结构:非空广义表的求表头和表尾运算5.二叉树(1)树和二叉树的概念●树和二叉树的逻辑结构●树和二叉树的存储结构:树的孩子兄弟二叉链表、二叉树的二叉链表●树和二叉树的遍历:树的三种遍历、二叉树的三种遍历●树和二叉树的转换(2)树和二叉树的实现●二叉树的递归遍历●哈夫曼树●哈夫曼编码6.图(1)图的概念●图的逻辑结构●图的存储结构:邻接矩阵、邻接表●图的遍历:深度优先搜索、广度优先搜索(2)图的实现●最小(代价)生成树:Prim和Kruskal方法●最短路径:Dijkstra方法●拓扑排序●关键路径7.查找(1)查找的概念●查找表、查找分类、查找结构●查找算法效率的评判标准:平均查找长度(2)静态表及其查找●顺序查找●折半查找(3)动态表及其查找●二叉排序树●平衡二叉树(4)哈希表及其查找●哈希函数●处理冲突方法●哈希查找(5)各种查找算法的分析8.排序(1)排序的概念●排序方法稳定性、排序分类●排序算法效率的评判标准(2)插入排序●简单插入排序●希尔排序(3)交换排序●冒泡排序●快速排序(4)选择排序●简单选择排序●堆排序(5)归并排序●二路归并排序●分治归并排序(6)各种排序算法的比较四、题型举例1.选择题在一棵树中,如果结点A有3个兄弟,B是A的双亲,则结点B的度是。

中国农业大学_821数据结构_《数据结构》期末题(2套)

中国农业大学_821数据结构_《数据结构》期末题(2套)

其散列函数为 h(key) = key % 13,处理冲突的方法为双重散列法,探查序列为: hi = (h(key) + i * 3) % 13, i = 1, 2, … 问:对表中关键字 61 进行查找时,所需进行的比较次数为多少?依次写出每次的计算公式 和值。 (10 分) 四、阅读下面程序,回答问题 (10 分) void function(Link **Head) { Link *pt1, *pt2, *tmp; pt1 = *Head; if (pt1 == NULL) return; pt2 = pt1->next; pt1->next = NULL; while (pt2 != NULL) { tmp = pt2->next; pt2->next = pt1; pt1 = pt2; pt2 = tmp;
D. 排序算法
2. 在数据结构中,可用存储顺序代表逻辑顺序的数据结构为 ( 3. 在数据结构中,按逻辑结构可把数据结构分为 ( A. 静态结构和动态结构 C. 顺序结构和链式结构 4. 对链式存储的正确描述是 ( A. 结点之间是连续存储的 C. 各结点类型可以不一致 A. 串中元素只能是字母 C. 串是一种特殊的线性表 )
数据结构 试题(A )卷(闭卷)
2009--2010 学年第 一 学期
学号
一、单项选择题 (每题 1 分,共 15 分) 1. 在计算机科学中,算法指的是 ( A. 计算机程序 A. 顺序结构 ) B. 描述问题的方法 B. 二叉排序树
姓名
C. 解决问题的有限步骤序列 ) D. Hash 表 C. 链式结构 )
14. 若结点的存储地址与其关键字之间存在某种映射关系,则称这种存储结构为 ( 15. 在一个顺序存储的有序序列中查找指定的关键字,其时间复杂度的下界是 ( A. O(logn) B. O(nlogn) C. O(n) D. O(1) 二、已知一个无向图的顶点集为{ a, b, c, d, e, f },其邻接矩阵如下所示(0-无边,1-有边)。

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

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

数据结构考研真题及其答案数据结构是计算机科学与技术专业考研中的重要科目之一,它对于培养学生的程序设计和算法分析能力具有关键作用。

以下将为大家呈现一些典型的数据结构考研真题,并提供详细的答案解析。

一、选择题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)。

中国农业大学_821数据结构_《数据结构》实验笔记(6)

中国农业大学_821数据结构_《数据结构》实验笔记(6)

实验6 图及其应用课程实验共安排8个难度各易的实验,训练重点在于掌握基本的数据结构,而不强调面面俱到。

通过实验,掌握抽象数据类型的概念和基本数据结构,掌握各种数据结构内在的逻辑关系,各种数据结构在计算机中的存储表示,基于各种数据结构上的基本运算、算法实现及算法分析。

●实验目的(1) 掌握图的基本存储方法。

(2) 掌握有关图的操作算法并用高级语言实现。

(3) 熟悉图的各种存储结构及其构造算法,了解实际问题的求解效率与采用何种存储结构以及算法有着密切的联系。

●实验内容(1) 软件专业的学生要学习一系列课程,其中有些课程必须在其先修课程完成之后才能学习,具体关系见下表。

课程编号课程名称先决条件C1 程序设计基础无C2离散数学C1C3数据结构C1, C2C4汇编语言C1C5语言的设计和分析C3, C4C6计算机原理C11C7编译原理C3, C5C8操作系统C3, C6C9高等数学无C10线性代数C9C11普通物理C9C12数值分析C1, C9, C10假设每门课程的学习时间为一学期,那么为该专业的学生设计教学计划,使他们能在最短的时间内修完这些课程。

(2) 以无向网表示n个城市之间通信网络的建设计划,顶点表示城市,边上的权表示该线路的造价;设计一个方案,使这个通信网的总造价最低。

(3) 假设以一个带权有向图表示某以区域的公交线路图,图种顶点代表一些区域种的重要场所,弧代表已有的公交线路,弧上的权表示线路上的票价(或搭乘所需要的时间)。

设计一个交通指南系统,指导前来咨询者以最低的票价或最少的时间从区域种的某一场所达到另一场所。

●实验要求(1) 认真分析题目。

(2) 进行算法设计。

(3) 编写程序代码(4) 上机调试程序。

(5) 保存和打印出程序的运行结果,并结合程序进行分析。

中国农业大学_821数据结构_《数据结构》笔记(1)

中国农业大学_821数据结构_《数据结构》笔记(1)

1
建立数据结构模型设计抽象数据类型
面向对象编程的关键是分析客观问题中主要操作对象,并与计算机世界里特定抽象数据类型
的实例对象相对应,形成对象模型。程序主要流程可归结为各种实例对象间的相互操作。 集合是现代代数学的重要基础,也是当今计算机科学中经常用到的基本概念,在很多应用问 题中集合及其成员也是其中主要的操作对象。如何在计算机中表示和实现集合,取决于该集合的 大小和所进行的操作。假设现在讨论的问题中的集合操作仅限于“求并” ,而集合的大小和集合 的成员不限,则宜采用有序表表示。由此首先需要设计一个有序表的抽象数据类型并实现之,集 合求并的算法则通过有序表的实例对象的操作完成。其算法思想是:依次比较两个有序表对象的 每个元素,将符合“并”条件的元素复制到结果有序表对象中。 抽象数据类型“有序表”定义如下: ADT OrderedList { n≥0 } i = 2, … , n }
从问题到程序的求解过程
从提出实际问题到编写程序并最后调试通过形成软件,是软件工程学(研究大型软件的设计 方法)和程序设计方法学(研究小规模程序的设计方法)研究的范畴。这里我们仅以面向对象编 程的思想讨论以抽象数据类型为中心的程序设计方法。这个程序设计方法大致可以分为以下 4 个 步骤: (1) 建立数据结构模型设计抽象数据类型; (2) 进行主算法的设计; (3) 实现抽象数据类型; (4) 编制可以上机的程序代码并进行静态测试和动态调试。 下面以有序表为基础, 研究分析一个整数集合求并运算实例, 对上述 4 个步骤予以分别讨论。
// 处理 a <= b 的情况 ListInsert ( Lc, a ); // 在 Lc 中插入一个其值和 a 相同的元素 ia++; if ( a == b ) ib++; } // end_if else {

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

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

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

中国农业大学_821数据结构_《数据结构》实验笔记(8)

中国农业大学_821数据结构_《数据结构》实验笔记(8)

实验8 排序
课程实验共安排8个难度各易的实验,训练重点在于掌握基本的数据结构,而不强调面面俱到。

通过实验,掌握抽象数据类型的概念和基本数据结构,掌握各种数据结构内在的逻辑关系,各种数据结构在计算机中的存储表示,基于各种数据结构上的基本运算、算法实现及算法分析。

●实验目的
(1) 掌握常用的排序方法,并掌握用高级语言实现排序算法的方法
(2) 深刻理解排序的定义和各种排序方法的特点,并能加以灵活应用
(3) 了解各种方法排序过程及其依据的原则,并掌握各种排序方法时间复杂度分析方法
●实验内容
(1) 给出n个学生的考试成绩表,每条信息由姓名与分数组成,设计一个算法按分数高低次序排序,并打印每个学生的姓名与分数。

(2) 采用最低位关键字优先(LSD)的基数排序法,实现对数列的排序,数列种的每个数据由d位数字组成,不足d位的数据高位补0。

(3) 写出在含有n个元素的堆种增加一个元素,且调整为堆的算法。

(4) 输入若干个国家名称,按照字典顺序将这些国家进行排序(设所有的名称均用大写或小写表示)。

●实验要求
(1) 认真分析题目。

(2) 进行算法设计。

(3) 编写程序代码
(4) 上机调试程序。

(5) 保存和打印出程序的运行结果,并结合程序进行分析。

中国农业大学_821数据结构_《数据结构》考试大纲

中国农业大学_821数据结构_《数据结构》考试大纲

数据结构(Data Structure)考试大纲一、课程性质与设置目的1. 课程性质和特点数据结构是高等院校计算机科学、信息科学及相关专业考试计划中一门专业基础课,在计算机软件的各个领域中均会使用到数据结构的有关知识。

本课程的目的和任务是使学习者较全面地掌握各种常用的数据结构,为学习后续软件课程提供必要的基础,提高运用数据结构解决实际问题的能力。

2. 本课程的基本要求从数据结构的逻辑结构、存储结构和数据运算三个方面去掌握线性表、栈、队列、串、数组、广义表、树、图和文件等常用的数据结构。

掌握在各种常用的数据结构上实现的排列和查找运算。

对算法的时间和空间复杂性有一定的分析能力。

针对简单的应用问题,应能选择合适的数据结构及设计有效的算法解决之。

3. 与相关课程的联系本课程的先修课程为离散数学和高级语言程序设计,后续课程为操作系统、数据库原理等。

数据结构中存储结构及基本运算的实现需要程序设计的基本知识和编程的经验及能力,本课程的大部分实例均是用C语言实现的,故要求较熟练地掌握C语言。

二、考试内容与考核目标第1章数据结构概述1. 课程内容(1) 基本概念和术语(2) 学习数据结构的意义(3) 算法的描述和分析2. 学习目的与要求本章的目的是介绍数据结构中常用的基本概念和术语以及学习数据结构的意义,要求了解本章介绍的各种基本概念和术语,掌握算法描述和分析的方法。

本章重点是了解数据结构的逻辑结构、存储结构及数据的运算三方面的概念及相互关系,难点是算法复杂度的分析方法。

3. 考核知识点与考核要求1. 数据结构的基本概念和术语、要求达到“识记”层次。

1.1 数据、数据元素、数据项、数据结构等基本概念。

1.2 数据结构的逻辑结构、存储结构及数据运算的含义及其相互关系。

1.3 数据结构的两大类逻辑结构和四种常用的存储表示方法。

2. 数据结构在软件系统中的作用,要求达到“识记”层次。

2.1 数据结构在各种软件系统中所起的作用。

中国农业大学硕士研究生入学考试初试模拟题821数据结构(三套)

中国农业大学硕士研究生入学考试初试模拟题821数据结构(三套)

中国农业大学
2011 年攻读硕士学位研究生入学考试模拟试题(一)
科目代码: 821 科目名称: 数据结构
考生注意: 所有大题务必书写在考场提供的答题纸上,写在本试题单上的答题一 律无效(本题单不参与阅卷) 。
报考专业: 一、选择题 1. 算法的时间复杂度取决于( ) A.问题的规模 B. 待处理数据的初态 C. A 和 B
四、假设按低下标优先存储整型数组 A(-3:8,3:5,-4:0,0:7)时,第一个元素的字节 存储地址是 100,每个整数占 4 个字节,问 A(0,4,-2,5)的存储地址是什么?
五、算法题 1.设 s、t 为两个字符串,分别放在两个一维数组中,m、n 分别为其长度,判断 t 是否为 s 的子串。如果是,输出子串所在位置(第一个字符) ,否则输出 0。 (注:用程序实现)
2.下面关于线性表的叙述中,错误的是哪一个? A.线性表采用顺序存储,必须占用一片连续的存储单元。 B.线性表采用顺序存储,便于进行插入和删除操作。 报考院校: C.线性表采用链接存储,不必占用一片连续的存储单元。 3. 栈在( )中应用。 B. 子程序调用 C. 表达式求值 D. A,B,C )
A. 递归调用
9 如果要求一个线性表既能较快的查找, 又能适应动态变化的要求, 则可采用( A. 分快查找 B. 顺序查找 C. 折半查找 D. 基于属性
10 组记录的关键码为(46,79,56,38,40,84) ,则利用快速排序的方法,以第一个记录 为基准得到的一次划分结果为( A.(38,40,46,56,79,84) C.(40,38,46,56,79,84) ) 。 B. (40,38,46,79,56,84) D. (40,38,46,84,56,79)
2.已知深度为 h 的二叉树以一维数组 BT(1:2 -1)作为其存储结构。请写一算法,求该二叉 树中叶结点的个数。

中国农业大学_821数据结构_《数据结构》习题(8)

中国农业大学_821数据结构_《数据结构》习题(8)

6. 已知长度为 12 的表 ( Jan, Feb, Mar, Apr, May, Jun, July, Aug,, Sep, Oct, Nov, Dec ): (1) 试按表中顺序依次将元素插入一棵初始为空的二叉树。 (字符之间以字典顺序比较 大小) 画出插入完成之后的二叉排序树, 且求在等概率的情况下查找成功的平均查找长度。 (2) 如果对表中元素先排序构成有序表,试求在等概率情况下对有序表进行折半查找 时,查找成功的平均查找长度。 (3) 按表中元素顺序构造出一棵相应的平衡二叉树,并求出在等概率的情况下查找成 功的平均查找长度。 7. B+树和 B-树的主要差异树什么? 8. 什么叫哈希法?哈希法中为什么会出现冲突? 9. 设关键值集合为 { 016, 087, 154, 170, 275, 426, 503, 509, 512, 612, 653, 678 },设计 一种哈希表,取装填因子 = 0.5,根据选择的哈希函数,计算出对应的地址,并统计出发 生冲突的次数。 10. 设关键值集合为 { SUN, GAO, HUA, WAN, PEN, YAN, LIU, ZHE, YAO, CHE }, 试 构造装填因子 = 10/13 的哈希表,取关键值的首字母在字母表中的序号(字典序)作为哈 希函数值,用线性探测法解决冲突,画出其哈希表。 11. 假定一个待哈希存储的线性表为 ( 32, 75, 63, 48, 94, 25, 36, 18, 70 ), 哈希地址空间 为[ 0 . . 10 ],如果采用除留余数法构造哈希函数和分别采用步长为 1 及步长为 3 的线性探 测法处理冲突,试分别给出它们对应的哈希表,并分别求出在等概率情况下查找成功时的 平均查找长度。 12. 将序列 (13, 15, 22, 8, 34, 19, 21) 插到一个初始时是空的哈希表中, 哈希函数采用 hash (x) = 1 + ( x MOD 7 )。 (1) 使用线性探测法解决冲突; (2) 使用步长为 3 的线性探测法解决冲突;

2018中国农业大学821考研数据结构真题

2018中国农业大学821考研数据结构真题

中国农业大学2018 年821 数据结构真题回忆版一、选择题( 20 分)1.下面程序段的时间复杂度为( )for (i=1,s=0;i<=n;i++ ){t=1;for(j=1;j<=i;j++) t=t*j;s= s+t;}A O(n)B O(n^2)C O(n^3)D O(n^4)2.有一个二维数组 A [ m ][ n ] ,假设 A [0][0]存放位置在644 (10) , A A [2][2] 存放位置在676 (10) ,每个元素占一个空间,问A [3][3] (10) 存放在什么位置?脚注(10) 表示用10 进制表示。

A.688 B.678 C.692 D.6963.对关键码序列{7,34,55,25,64,46,20,10}进行Hash 存储时,如果选用H(key)=key%9 作为Hash 函数,则Hash地址为 1 的元素有( )个。

A. 1B. 2C. 3D. 44.一个栈的入栈序列是A,B,C,D,E, 则栈的不可能输出序列是( )。

A.EDCBA B.DECBA C.DCEAB D.ABCDE5.当n=5 时,下列函数的返回值是( )。

intfoo(int n){if(n<2) return n;return foo(n-1)+foo(n-2);}A. 5B. 7C. 8D. 16.已知一颗二叉树,如果先序遍历顺序是ADCEFGHB,中序遍历顺序是CDFEGHAB则, 后序遍历顺序是() 。

A .CFHGEBDA B .CDFEGHBAC .FGHCDBA D.CFHGEDBA7.下列()数据结构,同时具有较高的查找,插入和删除性能。

A.有序数组B.有序链表C.AVL 树D.Hash 表8.下列排序算法中,()在任何情况下时间复杂度不会超过n*1og 2n 表示用10 进制表示。

A.快速排序 B. 堆排序 C. 简单选择排序 D. 冒泡排序9.初始序列为{1,8,6,2,5,4,7,3} 的一组采用堆排序,当构建小根堆完毕时,堆所对应的二叉树中序遍历序列为()A.8 3 2 5 1 6 4 7 B. 3 2 8 5 1 4 6 7C. 3 8 2 5 1 6 7 4D. 8 2 3 5 1 4 7 610..某段文本中各个字母出现的频率分别是 {a:4,b:3, o:12,h:7,i:10},使用哈夫曼编码, 则哪种是可能的编 码()A a(0 0 0) b(0 0 1) h(01) i(10) o(00)B a(0 0 0 0) b(0001) h(001) o(01) i(1)C a(0 1 1) b(0 1 0) h(00) i(01) o(11)D a(0 0 0 0) b(0 0 0 1) h(001) o(0001) i(1)二、填空( 20 分)1. 假定一个线性表为 (12,23,74,55,63,40,82,36),若按 key%3 条件进行划分,使得同一余数的元素成为一个 子表,则得到的三个子表分别是 _______ · 和 ______ 。

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

中国农业大学2018 年821 数据结构真题回忆版
一、选择题(20分)
1. 下面程序段的时间复杂度为()
for(i=1,s=0;i<=n;i++){
t=1;
for(j=1;j<=i;j++) t=t*j;
s= s+t;
}
A O(n)
B O(n^2)
C O(n^3)
D O(n^4)
2.有一个二维数组A [ m ][ n ],假设A [0][0]存放位置在644 (10),A A [2][2]存放位置在676 (10),每个元素占一个空间,问
A [3][3] (10)存放在什么位置?脚注(10) 表示用10 进制表示。

A.688 B.678 C.692 D.696
3. 对关键码序列{7,34,55,25,64,46,20,10}进行Hash 存储时,如果选用H(key)=key%9 作为Hash 函数,则Hash
地址为1 的元素有()个。

A. 1
B. 2
C. 3
D. 4
4.一个栈的入栈序列是A,B,C,D,E, 则栈的不可能输出序列是()。

A.EDCBA B.DECBA C.DCEAB D.ABCDE
5. 当n=5 时,下列函数的返回值是( )。

int foo(int n){
if(n<2) return n;
return foo(n-1)+foo(n-2);
}
A. 5
B. 7
C. 8
D. 1
6.已知一颗二叉树,如果先序遍历顺序是ADCEFGHB,中序遍历顺序是CDFEGHAB,则后序遍历顺序是()。

A.CFHGEBDA B.CDFEGHBA C.FGHCDBA D.CFHGEDBA
7.下列()数据结构,同时具有较高的查找,插入和删除性能。

A.有序数组B.有序链表C.AVL 树D.Hash 表8.下列排序算法中,()在任何情况下时间复杂度不会超过n*1og2n
表示用10 进制表示。

A.快速排序 B. 堆排序 C. 简单选择排序 D. 冒泡排序
9. 初始序列为{1,8,6,2,5,4,7,3} 的一组采用堆排序,当构建小根堆完毕时,堆所对应的二叉树中序遍历序列为()
A.8 3 2 5 1 6 4 7 B. 3 2 8 5 1 4 6 7
C. 3 8 2 5 1 6 7 4
D. 8 2 3 5 1 4 7 6
10..某段文本中各个字母出现的频率分别是{a:4,b:3,o:12,h:7,i:10},使用哈夫曼编码,则哪种是可能的编码()
A a(0 0 0) b(0 0 1) h(01) i(10) o(00)
B a(0 0 0 0) b(0001) h(001) o(01) i(1)
C a(0 1 1) b(0 1 0) h(00) i(01) o(11)
D a(0 0 0 0) b(0 0 0 1) h(001) o(0001) i(1)
二、填空(20分)
1. 假定一个线性表为(12,23,74,55,63,40,82,36),若按key%3 条件进行划分,使得同一余数的元素成为一个子表,则得到的三个子表分别是__________·__________和__________。

2. 为了能有效地应用Hash 查找技术,必须解决的两个问题是____________________ 和__________________________。

3 .已知一有向图的邻接表存储结构如下:从顶点1 出发,DFS 遍历的输出序列是_______ ,BFS遍历的输出序列是____
—_
4. 设有广义表L=(apple,(pear,(banana).orage) ),利用广义表的Head 和Tail 操作,把单元素banana 从L 中分离出来的函数表达式是_____。

5. 设有序顺序表是(017,094,154,170,275,503,509,512,553,612,677,765, 897,908),查找成功的平均查找长度是___________ ,查找不成功的平均查找长度是_______。

三.简答题(25分)
1.在结点个数为n(n>1)的各棵树中
(1)高度最小的树的高度是多少?有多少个叶结点?多少个分支结点?
(2)高度最大的树的高度是多少?有多少个叶结点?多少个分支结点?
2.用邻接矩阵表示图时,如果图中有1000 个顶点,1000 条边,则形成的邻接矩阵有多少矩阵元素?有
多少非零元素?是否稀疏矩阵?
3.如果一棵树有n1 个度为1 的节点,有n2 个度为2 的节点,...,nm 个度为m 的结点,试问有多少个度为0 的结点?试推导之。

4.如果对n 个元素的有序顺序表和无序顺序表进行顺序查找,试就下列两种情况分别讨论两者在等查找概率时的平均查找长度是否相同?
(1)搜索失败
(2)搜索成功,且表中只有一个关键码等于给定值K 的对象
5.试分别找出满足以下条件的所有二叉树
(1)二叉树的前序序列和中序序列相同
(2)二叉树的中序序列和后序序列相同
(3)二叉树的前序序列和后序序列相同
四.综合题(45分)
1.有150 个记录要存储到散列表中, 要求利用线性探查法解决冲突, 同时要求找到所需记录的平均比较次数不超过2 次。

试问Hash 表需要设计多大?设a 是Hash 表的装载因子,则有
2. 假定用于通信的电文仅由8个字母c1,c2,c3,c4,c5,c7,c8组成,各字母在电文出现的频率分别为5, 25, 3, 6, 10,11, 36, 4。

为这8 个字母设计不等长Huffman 编码,并求出:
(1)每一位字母编码位数(即c1,c2,c3,c4,c5,c7,c8 编码位数为别是?)
(2)该电文的总码数
3. 设Hash 表为HT[13], Hash 函数为H (key) = key %13。

用闭Hash 法解决冲突, 对下列关键码序列{12, 23, 45,57, 20, 03, 78, 31, 15, 36 }造表。

(1) 采用线性探查法寻找下一个空位, 画出相应的Hash 表, 并计算等概率下搜索成功的平均搜索长度和搜索不成功的平均搜索长度。

(2) 采用双散列法寻找下一个空位, 再散列函数为RH (key) = (7*key) % 10 + 1, 寻找下一个空位的公式为Hi =(Hi-1 + RH (key)) % 13, H1 = H (key)。

画出相应的散列表, 并计算等概率下搜索成功的平均搜索长度。

五.算法题(40分)
1.完善下面程序段,实现数据X 进栈功能。

typedef struct {int s[100]; int top;} sqstack;
void push(sqstack &stack,int x)
{
if (stack.top==m-1) printf(“overflow”);
else
{____________________;;
________________;
}
}
2.所谓回文,是指从前向后顺读和从后向前倒读都一样的不含空白字符的串。

例如did,madamimadam,pop 即是回文。

试编写递归算法,以判断一个串是否是回文。

3.设计在带头结点的单链表中删除值相同的多余结点的算法。

4.试构造排序5 个整数最多用7 次比较的算法。

相关文档
最新文档