ImageVerifierCode 换一换
格式:DOCX , 页数:10 ,大小:19.80KB ,
资源ID:19721871      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/19721871.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(大数据的结构作业答案详解Word格式文档下载.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

大数据的结构作业答案详解Word格式文档下载.docx

1、8、算法的时间复杂度应该与()无关。所使用的计算机 程序设计语言 基本运算的执行次数 程序编制者 ABD 教师批改:A,B,D 9、下列关于算法的描述中,不正确的有()。算法即是计算机程序 算法是解决问题的计算方法 算法是排序方法 算法是解决问题的有限运算序列 填空题16、所谓算法是指( )。 教师批改:解题方案的准确而完整的描述 17、算法的基本特征有( )、()、()和() 能行性、确定性、有穷性和拥有足够的情报。18、一个算法通常由两种基本要素组成,它们是()和()。算法中对数据的运算和操作。算法的控制结构。19、工程上常用的几种算法设计方法有列举法、()、()、()、()和回溯法。归纳

2、法、递推、递归、减半递推技术。20、算法的复杂度主要包括()复杂度和()复杂度。时间、空间 综合题21、设给定3个整数a,b,c,试写出寻找这3个整数的中数的算法;并分析在平均情况与最坏情况下,该算法分别要做多少次比较?寻找这3个整数的中数的算法用C语言描述如下(中数m由函数值返回): int mid ( int a, int b, int c) int m ; m=a ; if ( m=b ) if (m=c) if ( b=c ) m=b ; else m=c ; else if ( m=c) m=c; else m=b ; return ( m ) ; 假设a,b,c中的每一个数为中数的

3、概率相等(均为1/3)。由于当a为中数时需要比较2次,b或c为中数时均需要比较3次,因此,在平均情况下上述算法所需要的比较次数为2*(1/3)+3*(1/3)+3*(1/3)= 8/3 即在平均情况下,上述算法需要比较8/3次。在最坏情况下,上述算法需要比较3次(当b或c为中数时)。第二章选择题1、下列排序方法中,哪一个是稳定的排序方法()。 归并排序 稀尔排序 堆排序 快速排序 2、设输入序列为1,2,3,4,借助一个栈得到的输出序列可以是()。 3,4,1,2 4,2,1,3 4,1,2,3 1,3,4,2 3、用数组Am存放循环队列的元素值,若其头尾指针分别为front和rear,则循环

4、队列中当前元素的个数为()。 (rear+front)%m (rear-front+m)%m (rear-front)%m (rear-front+1)%m B 4、对于下三角矩阵A,若采用一个一维数组B以行为主顺序存放压缩矩阵A,则A43存放在()中. B7 B8 B9 B10 5、深度为5的二叉树至多有()个结点。 16 32 31 10 6、一个有n个顶点的无向图最多有()条边。 n n(n-1) n(n-1)/2 2n 7、下列说法不正确的是()。 线性表可以顺序存储 线性表可以链式存储 线性表在顺序存储下可以对分查找 线性表在链式存储下可以对分查找 8、栈和队列的共同点是()。 都是

5、先进后出 都是先进先出 只允许在端点处插入和删除元素 没有共同点 9、若进栈序列为A、B、C、D(进栈过程可以出栈),不可能得到的出栈序列是()。 A、D、C、B B、C、D、A C、A、D、B C、D、B、A 10、在一个单链表中,若p结点不是最后一结点。在p结点之后插入s结点的正确操作是()。 s-next=p; p-next=s;next=p-next ;s- p=p;B 教师批改:11、由3个结点可以构造出多少种不同的二叉树()。 2 4 5 8 27、若一棵完全二叉树共有100个结点,则其叶子结点数为()。50 28、在单链表中设置(表)头结点的作用是()。简化插入,删除算法,方便运

6、算的实现。29、结点最少的树为(),结点最少的二叉树为()。只有一个(根)结点的树。空的二叉树。34、 在一棵二叉树中有30个叶子结点,仅有一个孩子的结点有20个,则该二叉树结点数为()。79 35、 在线性表的散列存储中,处理冲突有()和()两种方法。拉链法、开地址法 36、 已知一棵二叉树的中序遍历序列和后序遍历序列分别为BDCEAFHG和DECBHGFA,试写出其前序遍历序列。前序遍历:ABCDEFGH 30、 数据的()结构与数据元素本身的内容、形式、个数和相对位置无关。逻辑 31、 数据的存储结构有四种基本的存储映射方式:顺序 、()、 索引和()存储方式。链式、散列 32、 用顺序

7、方法将完全二叉树的结点逐层存放在数组A1An中,若结点Ai 有右子女,则右子女是结点为()。A2*i+1 33、设有二维数组A46,其中每个元素占两个字节,数组按列优先顺序存储,第一个元素a11的存储地址为100,那么元素a43的存储地址为()。122 37、什么叫数据结构?数据结构对算法有什么影响? 数据结构是指相互有关联的数据元素的集合。因此,一个数据结构既要反映数据元素的信息,又要反映数据元素之间的关系。数据元素之间的关系可以是逻辑关系(通常用前后件关系来表示),也可以是数据元素在计算机中的存储位置。反映数据元素之间逻辑关系的数据结构称为数据的逻辑结构。数据的逻辑结构在计算机存储空间中的

8、存放形式称为数据的存储结构,又称为数据的物理结构。同一批数据元素的集合,采用不同的数据结构(特别是存储结构),其数据处理的效率是不一样的,主要体现在算法的时间复杂度与空间复杂度方面。比如:若只是对23个数进行排序,则用几个IF语句即可完成;而若对一般情况下的N个数进行排序,则要使用数组,通过(双重等)循环来完成。38、 试写出在顺序存储结构下逆转线性表的算法,要求使用最少的附加空间 顺序存储结构下逆转线性表的算法用C语言描述如下(其中ET为数据元素的类型):void invsl ( int n , ET a ) int k ; ET t ; for ( k=0 ; kfront ,则循环队列中

9、的元素个数为rear-front ;如果rearfront ,则循环队列中的元素个数为M+(rear-front) ;由此可以得到:(1)循环队列中的元素个数为rear-front = 21-14 = 7 。(2)循环队列中的元素个数为M+(rear-front) = 70+(12-23) = 59 。注:求循环队列中元素个数的通用式为: ( rear-front+M ) % M 。其中%为求余运算。40、 试编写一个算法,将两个有序的顺序表合并为一个有序的顺序表。 合并有序顺序表的算法如下描述。输入:长度为的有序数组A(1:n),长度为的有序数组B(1:m)。输出:有序数组A与有序数组B合并

10、后的有序数组C(1:mn)。其中mn = m+n 。 上述算法用C语言描述如下(其中ET为数据元素的类型):void mgsl ( int n , ET a , int m , ET b , ET c ) int i , j , k , t ; i = 0 ; j = 0 ; k = 0 ; while ( ( in ) & ( jm ) ) if ( a i = b j ) c k = a i ; i = i+1 ; else c k = b j ; j= j+1 ; k = k+1 ;if ( i = = n) for ( t = j ; t while ( p != head ) n =

11、 n+1 ; p = p- return ( n ) ;42、 试写出逆转(带表头结点的)线性单链表的算法。 设其头指针为head ,数据元素类型为ET。 算法用C语言描述如下: struct node /* 定义线性单链表结点类型 */ /* 定义线性单链表结点数据类型 */void invlst ( struct node * head ) struct node *p , *q ; head-next = NULL ;= NULL ) q = p ; q-next = head-next = q ;43、 设有两个有序线性单链表,头指针分别为AH与BH。试写出将这两个有序线性单链表合并为

12、一个头指针为CH的有序线性单链表的算法。头指针分别为AH与BH的两个有序线性单链表。将头指针分别为AH与BH的两个有序线性单链表合并后的头指针为CH的有序线性单链表。算法用C语言描述如下(其中ET为数据元素类型):# include “ stdio.h “void mglst ( struct node *ah , struct node *bh , struct node * ch ) struct node * i , * j , * k , * p ; i = ah ; j = bh; *ch = NULL ; k = NULL ; while ( ( i != NULL ) & ( j

13、 != NULL ) ) p = ( struct node * ) malloc ( sizeof ( struct node ) ) ; /* 取得一个新结点 */ if ( j-d = i-d ) p-d = i-d ; i = i- else p-d = j- j = j- if ( *ch = = NULL ) *ch = p ; else k-next = p ; k = p ;if ( j = = NULL ) while ( i ! else while ( j ! if ( k != NULL ) k- 44、已给一个带表头结点的单链表head,它含有重复结点,即它含有数据域

14、的值相同的结点,试用C语言(或类C语言)写出以下算法函数:(1)删除单链表中重复的多余结点。(2)输出不含重复结点的单链表。(1) void deletenode ( NODE * head ) NODE *r, *p, *q;r = head-next;while (r ! int m = r-data ;p = r ;while ( p ! q = p;if ( p-data = = m ) q-next = p- free (p); p = q-(2)void print ( NODE * head ) NODE *p ; printf ( “%c” , p-data ) ;printf

15、(“n”);45、设树T的度为4,其中度为1,2,3,4的结点个数分别为4,2,1,1。问T中有多少个叶子结点?根据给定的条件,在树T中,各结点射出的分支总数为: 4*1+2*2+1*3+1*4 = 15 树T中的总结点数为: 15(各结点射出的分支总数)+1(根结点)= 16 非叶子结点总数为: 4+2+1+1 = 8 因此,叶子结点数为: 16(总结点数)- 8(非叶子结点总数)= 8 46、 设有n个人围成一圈,每个人的编号依次为1,2,3,。,n。现从编号为k的人开始报数,数到m的人出列,接着从出列的下一个人开始重新报数,数到m的人又出列,依此类推,直到所有人都出列为止。现要求该n个人

16、的出列顺序。这个问题称为约瑟夫(Josephu)问题。试编写求解约瑟夫问题的算法。设以自然数1,2,3,。,n为元素构成一个循环队列,并用一个数组A(1:n)存放该队列中各元素的直接后继,其中A(i)表示表示整数i的下一个整数。在开始时,该数组中的各元素为:A(i) = i+1 ; i = 1, 2, 3, ., n-1 A(n) = 1;以后由于不断地有元素从这个队列中出来,该数组中的元素值也在不断地变化。即当有元素出列后,某些整数i的下一个数就不一定是i + 1了。下面的算法中用数组B(1:n)依次存放每次的出列者。# include “ stdlib.h “void jsphu ( int n , int m , int k , int b ) int i , j , t , *a ; a = malloc ( n*sizeof ( int ) ) ; for ( i = 0 ; i i + + ) a i = i+1 ; a n-1 = 0 ; k = k-1 ; for ( j = 0 ; j j + + ) for ( i = 0 ; i t = k ; k = a k ; b j = k + 1; a t = a k ; free ( a ) ;

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1