中国农业大学_821数据结构_2001真题
中国农业大学_821数据结构_《数据结构》实验笔记(4)
实验4 数组与广义表
课程实验共安排8个难度各易的实验,训练重点在于掌握基本的数据结构,而不强调面面俱到。
通过实验,掌握抽象数据类型的概念和基本数据结构,掌握各种数据结构内在的逻辑关系,各种数据结构在计算机中的存储表示,基于各种数据结构上的基本运算、算法实现及算法分析。
●实验目的
(1) 了解数组的存储表示方法,掌握其在作为运行的存储结构中的地址计算方法。
(2) 了解特殊矩阵及稀疏矩阵压缩存储特点和适用范围,领会其运算采用的处理方法。
(3) 了解广义表的结构特点及存储表示方法,掌握其主要运算的实现方法。
●实验内容
1. 鞍点问题
[问题描述] 若矩阵A中的某一元素A[i, j]是第i行中的最小值,而又是第j列中的最大值,则称A[i, j]为矩阵A中的一个鞍点。
请写出一个可确定此鞍点位置的算法(如果这个鞍点存在),并给出此算法的时间复杂度。
[基本要求] 要求算法要考虑某行中具有多个相同的且又是该行中最小的元素的情况。
2. 对称矩阵运算
[问题描述] 已知A和B为两个n×n阶的对称矩阵,试编写一个计算对称矩阵A和B的乘积的函数。
[基本要求] 输入时对称矩阵只输入下三角形元素,存入一维数组,即采用压缩存储。
3. 广义表运算
[问题描述] 在给定的广义表中查找数据为x的结点,编写该算法。
[基本要求] 广义表采用扩展线性链表存储表示。
●实验要求
(1) 认真分析题目。
(2) 进行算法设计。
(3) 编写程序代码
(4) 上机调试程序。
(5) 保存和打印出程序的运行结果,并结合程序进行分析。
2001年到2006年自考数据结构试题和答案2
全国2004年10月卷答案一、单项选择题DABAC CCBDA ABABD// 5.可以简单的计算,空域为3->7,总共5个,对长则为21 - 5 = 167.c//BDBABDABDABBDA123失败,比较3次BDBABDABDABBDA1失败,比较1次BDBABDABDABBDA12失败,比较2次BDBABDABDABBDA1失败,比较1次BDBABDABDABBDA123成功,比较3次共计10次10.dA/B/ | \C D F|E二、填空题16.(一组)运算17. 直接前驱18. SXSSXXSSXSSXXX19. 模式匹配20. 5n - 6N+2N-2+2N-4=5N-6// n阶5对角阵// 1 1 1 0 0 ............// 1 1 1 1 0 ............// 1 1 1 1 1 0 ..........// 0 1 1 1 1 1 0.........// 0 0 1 1 1 1 1 0 ......// ....0 1 1 1 1 1 0 ....// ......................// ......................21. 50// 63 < 100 < 127, 最下一层叶子数:100 - 63 = 37// 倒数第2层叶子数:32 - [ 37 / 2 ] = 13 []向上取整22. 径?23. 待排关键字(记录)?24. 有序的?25. ?// 一些概念题,因为没书,很久没接触了,可能不准确。
三、解答题略28划分后左边:(55) (28) (73) (91) (37) 右边:(64),(19),(82),(46)第一次Merge之后:(28,55)(73) (91) (37) 右边:(64),(19),(82),(46)第二次Merge之后:(28,55)(73,91) (37) 右边:(64),(19),(82),(46)第三次Merge之后:(28,55,73,91)(37) 右边:(64),(19),(82),(46)第四次Merge之后:(28,37,55,73,91) 右边:(64),(19),(82),(46)第五次Merge之后:(28,37,55,73,91) 右边:(19,64),(82), (46)所以.....28,37,55,73,91,19,64,82,46四、算法阅读题30.1) p = pre->next; 或 p = L->next; // p指向第一个结点2) p->next = Lc->next; // 数据大于c的p结点插入Lc链表表头3) p = pre->next; 或 p = p->next; // 下一个结点31.此题有误,... if ((i=!t)!=0) ... 应该是 ... if( ( i = !i ) != 0 ) ...1) 1,3,5,7,6,4,22) 堆栈S中的元素依次出栈,奇数次序的入栈T,偶数次序的入队Q32.图G的邻接矩阵不对称,因此,是有向图1) 52) 计算有向图G中的端点i(第i+1个端点)的度,包括出度和入度3) O(n)33. 此题明显有错误if( low > high )应为if( low < high )因为if(){...}里有while( low < high )1) -8, -3, -2, -1, 4, 2, 5, 7:-8 -3 2 -1 -2 4 5 72) 将数组R中的前n个数调整为所有负数在前,所有整数在后五、算法设计题34. 看原型,应该是要使用递归了,题目很傻地把解法都告诉我们了。
网上农大数据结构A-D作业答案—均为满分哟!
数据结构(第2版)-在线作业_A 用户名:W360201121011最终成绩:100.0设有数据逻辑结构为:Data=(D,R);D={d1,d2,d3,d4,d5,d6,d7 }R={<d1,d2>,<d2,d1>,<d1,d4>,<d4,d1>,<d2,d3>,<d3,d2>,<d2,d6>,<d6,d2>,<d2,d7>,<d 7,d2>,<d3,d7><d7,d3><d4,d6><d6,d4>,<d5,d7>,<d7,d5>}试分析该数据结构属于哪种逻辑结构?()n-i-1n-in-i+1i判断下列程序段的时间复杂度数量级()。
for(i=1;i<n;i++)for(j=1;j<=i;j++)for(k=1;k<=j;k++)x=x+1;在一个长度为n的顺序存储线性表中,向第i个元素(1<=i<=n+1)位置插入一个新元素2134本题分值: 5.0 用户得分:5.0 用户解答: 2知识点: 2.3 链接存储结构线性表top-- top++ top=N-1 top=0在一个单链表中,若要在p 所指向的结点之后插入一个新结点,则需要相继修改( )个当利用大小为N 的数组顺序存储一个栈时,假定用top==N 表示栈空,则向这个栈插入一front == 0rear+1 == frontfront+1 == rear front == rear本题分值: 5.0用户得分: 5.0用户解答: front == rear知识点: 3.1 顺序存储结构队列{00,01,10,11} {0,01,00,11}{1,01,000,001} {0,10,110,111}本题分值: 5.0 用户得分: 5.0在规定顺序环形队列一般状态队头指针指向第一个数据元素之前的空位,队尾指针指向末尾元素的前提下,假定一个顺序循环队列的队首和队尾指针分别用front 和rear 表示,下述编码中不是前缀编码的是( )。
中国农业大学_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)
第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套)
报考专业:
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) 二、判断题
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 时,下列函数的返回值是( )。
int foo(int n){if(n<2) return n;return foo(n-1)+foo(n-2);}A. 5B. 7C. 8D. 16.已知一颗二叉树,如果先序遍历顺序是ADCEFGHB,中序遍历顺序是CDFEGHAB,则后序遍历顺序是()。
A.CFHGEBDA B.CDFEGHBA C.FGHCDBA D.CFHGEDBA7.下列()数据结构,同时具有较高的查找,插入和删除性能。
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 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 条件进行划分,使得同一余数的元素成为一个子表,则得到的三个子表分别是__________·__________和__________。
中国农业大学_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 {
中国农业大学_821数据结构_《数据结构》实验笔记(5)
实验5 二叉树与树
课程实验共安排8个难度各易的实验,训练重点在于掌握基本的数据结构,而不强调面面俱到。
通过实验,掌握抽象数据类型的概念和基本数据结构,掌握各种数据结构内在的逻辑关系,各种数据结构在计算机中的存储表示,基于各种数据结构上的基本运算、算法实现及算法分析。
●实验目的
(1) 进一步掌握指针变量、动态变量的含义。
(2) 掌握二叉树的结构特性,以及各种存储结构的特点及适用范围。
(3) 掌握用指针类型描述、访问和处理二叉树的运算。
●实验内容
(1) 试编写交换以二叉链表作存储结构的二叉树中所有结点的左、右子树的算法。
(2) 已知以二叉链表作存储结构,试编写按层次顺序遍历二叉树的算法。
(3) 已知二叉排序树以二叉链表作存储结构,试编写按从大到小的顺序输出二叉排序树的各结点的算法。
●实验要求
(1) 认真分析题目。
(2) 进行算法设计。
(3) 编写程序代码
(4) 上机调试程序。
(5) 保存和打印出程序的运行结果,并结合程序进行分析。
中国农业大学_821数据结构_《数据结构》实验笔记(8)
实验8 排序
课程实验共安排8个难度各易的实验,训练重点在于掌握基本的数据结构,而不强调面面俱到。
通过实验,掌握抽象数据类型的概念和基本数据结构,掌握各种数据结构内在的逻辑关系,各种数据结构在计算机中的存储表示,基于各种数据结构上的基本运算、算法实现及算法分析。
●实验目的
(1) 掌握常用的排序方法,并掌握用高级语言实现排序算法的方法
(2) 深刻理解排序的定义和各种排序方法的特点,并能加以灵活应用
(3) 了解各种方法排序过程及其依据的原则,并掌握各种排序方法时间复杂度分析方法
●实验内容
(1) 给出n个学生的考试成绩表,每条信息由姓名与分数组成,设计一个算法按分数高低次序排序,并打印每个学生的姓名与分数。
(2) 采用最低位关键字优先(LSD)的基数排序法,实现对数列的排序,数列种的每个数据由d位数字组成,不足d位的数据高位补0。
(3) 写出在含有n个元素的堆种增加一个元素,且调整为堆的算法。
(4) 输入若干个国家名称,按照字典顺序将这些国家进行排序(设所有的名称均用大写或小写表示)。
●实验要求
(1) 认真分析题目。
(2) 进行算法设计。
(3) 编写程序代码
(4) 上机调试程序。
(5) 保存和打印出程序的运行结果,并结合程序进行分析。
中国农业大学硕士研究生入学考试初试模拟题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)
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 的线性探测法解决冲突;
中国农业大学_821数据结构_《数据结构》期末题(2套)
(1)算法至少有一个输入和一个输出
(2)算法至少有一个输出但是可以没有输入 (3)算法可以永远运行下去 A. (1) ( 3) 5. 对顺序存储的线性表(a1,a2,…,an)进行插入操作的时间复杂度是 A.O(n) B. O(n-i) 。 B.插入和删除时不需要移动 C. (n/2) C 。 B. (2) C. (3) D. (2)和
10. 将新元素插入到链式队列中时,新元素只能插入到 A. 链头 B. 链尾 C. 链中
D. 第 i 个位置,i 大于等于 1,大于等于表长加 1 11. 设栈 S 和队列 Q 的初始状态为空,元素 e1、e2、e3、e4、e5 和 e6 依次通
过栈 S,一个元素出栈后即进入队列 Q,若 6 个元素出队的顺序是 e2、e4、 e3、e6、e5、和 e1,则栈 S 容量至少应该是 A. 6 12.下面 D B. 4 C. 3 C 。 D. 2
a b c d e f
a 0 1 0 0 1 0
b c d e f 1 0 0 1 0 0 1 1 0 0 1 0 1 1 1 1 1 0 1 1 0 1 1 0 0 0 1 1 0 0
(1). 画出该图的图形; (2). 根据邻接矩阵从顶点 a 出发进行广度优先遍历,画出相应的广度优先遍历树。 (15 分) 三、已知一个散列表如下图所示: 0 59 1 2 61 3 4 5 6 7 33 8 9 48 10 20 11 12 35
是‘abcd321ABCD’的子串。 B. 321ab C. ‘ abc ABC ’ D.
A. abcd ‘21AB’
13.假设 8 行 10 列的二维数组 A[1…8,1…10]分别以行序为主序和以列序为主 序顺序存储时,其首地址相同,那么以行序为主序时元素 a[3,5]的地址与以 列序为主序时 C 元素相同。 A. a[7,3] 都不对 14. 数组 A[0…5,0…6]的每个元素占 5 个字节,将其按列优先次序存储在起始 地址为 1000 的内存单元中,则元素 A[5,5]的地址为 A. 1175 B. 1180 C. 1205 B 。 C. (a,(b,(d))) D. A 。 D.1210 B. a[8,3] C. a[1,4] D. ABC