欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    数据结构作业内容答案.doc

    • 资源ID:570048       资源大小:46KB        全文页数:8页
    • 资源格式: DOC        下载积分:8金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要8金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    数据结构作业内容答案.doc

    .第一章单选题1、下列关于算法的基本特征,说法不正确的是() 。 能行性是算法中的每一个步骤必须能够实现且能达到预期的目的。 算法的确定性是指算法中的每一个步骤必须是有明确的定义,不允许模棱两可。 算法的有穷性是指算法必须能在有限的时间内做完。 算法与提供情报无关。 D 教师批改: D 2、算法的时间复杂度取决于() 。 问题的规模 待处理的数据的初态 问题的难度 A 和 B D 教师批改: D 3、下列选项中,不是算法基本特征的是() 。 可行性 有穷性 确定性 高效率 D 教师批改: D 4、通常一个好的算法应达到的目标中,不包括() 。 正确性 可读性 技巧性 健壮性 C 教师批改:C 5、在一般的计算机系统中,基本的运算和操作不包括() 。 语法处理 算术运算 关系运算 数据传输 A 教师批改: A 6、工程上常用的分治法是() 。 列举法 归纳法 减半递推技术 回溯法 C 教师批改:C多选题7、算法设计的要求包括() 。 正确性 可读性 健壮性 唯一性 ABC 教师批改:A,B,C 8、算法的时间复杂度应该与()无关。 所使用的计算机 程序设计语言 基本运算的执行次数 程序编制者 ABD 教师批改:A,B,D 9、下列关于算法的描述中,不正确的有() 。 算法即是计算机程序 算法是解决问题的计算方法 算法是排序方法 算法是解决问题的有限运算序列 ABC 教师批改:A,B,C 填空题16、所谓算法是指( ) 。 教师批改:解题方案的准确而完整的描述 17、算法的基本特征有( ) 、 () 、 ()和() 教师批改:能行性、确定性、有穷性和拥有足够的情报。 .18、一个算法通常由两种基本要素组成,它们是()和() 。 教师批改:算法中对数据的运算和操作。算法的控制结构。19、工程上常用的几种算法设计方法有列举法、 () 、 () 、 () 、 ()和回溯法。 教师批改:归纳法、递推、递归、减半递推技术。 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 中的每一个数为中数的概率相等(均为 1/3) 。由于当 a 为中数时需要比较 2次,b 或 c 为中数时均需要比较 3 次,因此,在平均情况下上述算法所需要的比较次数为2*(1/3 )+3*(1/3)+3*(1/3)= 8/3 即在平均情况下,上述算法需要比较 8/3 次。在最坏情况下,上述算法需要比较 3 次(当 b 或 c 为中数时) 。第二章选择题1、下列排序方法中,哪一个是稳定的排序方法() 。 归并排序 稀尔排序 堆排序 快速排序 A 教师批改: A 2、设输入序列为 1,2,3,4,借助一个栈得到的输出序列可以是() 。 3,4,1,2 4,2,1,3 4,1,2,3 1,3,4,2 D 教师批改: D 3、用数组 Am存放循环队列的元素值,若其头尾指针分别为 front 和 rear,则循环队列中当前元素的个数为() 。 (rear+front)%m (rear-front+m)%m (rear-front)%m (rear-front+1)%m D 教师批改: B 4、对于下三角矩阵 A,若采用一个一维数组 B 以行为主顺序存放压缩矩阵 A,则 A43 存放在()中. B7 B8 B9 B10 C 教师批改:C 5、深度为 5 的二叉树至多有()个结点。 16 32 .31 10 C 教师批改:C 6、一个有 n 个顶点的无向图最多有()条边。 n n(n-1) n(n-1)/2 2n C 教师批改:C 7、下列说法不正确的是() 。 线性表可以顺序存储 线性表可以链式存储 线性表在顺序存储下可以对分查找 线性表在链式存储下可以对分查找 D 教师批改: D 8、栈和队列的共同点是() 。 都是先进后出 都是先进先出 只允许在端点处插入和删除元素 没有共同点 C 教师批改:C 9、若进栈序列为 A、B、C、 D(进栈过程可以出栈),不可能得到的出栈序列是() 。 A、D、C、B B、C、D、A C、A、D、B C、D、B、A C 教师批改:C 10、在一个单链表中,若 p 结点不是最后一结点。在 p 结点之后插入 s 结点的正确操作是() 。 s->next=p; p->next=s; s->next=p->next ; p->next=s; s->next=p; p=p; p->next=s; s->next=p; B 教师批改:B 11、由 3 个结点可以构造出多少种不同的二叉树() 。 2 4 5 8 C 教师批改:C 填空题27、若一棵完全二叉树共有 100 个结点,则其叶子结点数为() 。 教师批改:50 28、在单链表中设置(表)头结点的作用是() 。 教师批改:简化插入,删除算法,方便运算的实现。 29、结点最少的树为() ,结点最少的二叉树为() 。 教师批改:只有一个(根)结点的树。空的二叉树。34、 在一棵二叉树中有 30 个叶子结点,仅有一个孩子的结点有 20 个,则该二叉树结点数为() 。 教师批改:79 35、 在线性表的散列存储中,处理冲突有()和()两种方法。 教师批改:拉链法、开地址法 36、 已知一棵二叉树的中序遍历序列和后序遍历序列分别为 BDCEAFHG 和DECBHGFA,试写出其前序遍历序列。 教师批改:前序遍历:ABCDEFGH 30、 数据的()结构与数据元素本身的内容、形式、个数和相对位置无关。 教师批改:逻辑 31、 数据的存储结构有四种基本的存储映射方式:顺序 、 () 、 索引和()存储方式。 教师批改:链式、散列 32、 用顺序方法将完全二叉树的结点逐层存放在数组 A1An中,若结点 Ai 有右子.女,则右子女是结点为() 。 教师批改:A2*i+1 33、设有二维数组 A4×6,其中每个元素占两个字节,数组按列优先顺序存储,第一个元素 a11 的存储地址为 100,那么元素 a43 的存储地址为() 。 教师批改:122 综合题37、什么叫数据结构?数据结构对算法有什么影响? 数据结构是指相互有关联的数据元素的集合。因此,一个数据结构既要反映数据元素的信息,又要反映数据元素之间的关系。数据元素之间的关系可以是逻辑关系(通常用前后件关系来表示) ,也可以是数据元素在计算机中的存储位置。反映数据元素之间逻辑关系的数据结构称为数据的逻辑结构。数据的逻辑结构在计算机存储空间中的存放形式称为数据的存储结构,又称为数据的物理结构。同一批数据元素的集合,采用不同的数据结构(特别是存储结构) ,其数据处理的效率是不一样的,主要体现在算法的时间复杂度与空间复杂度方面。比如:若只是对 23 个数进行排序,则用几个 IF 语句即可完成;而若对一般情况下的 N 个数进行排序,则要使用数组,通过(双重等)循环来完成。38、 试写出在顺序存储结构下逆转线性表的算法,要求使用最少的附加空间顺序存储结构下逆转线性表的算法用 C 语言描述如下(其中 ET 为数据元素的类型):void invsl ( int n , ET a ) int k ; ET t ; for ( k=0 ; kfront ,则循环队列中的元素个数为 rear-front ;如果 rearnext ; while ( p != head ) n = n+1 ; p = p->next ; return ( n ) ;42、 试写出逆转(带表头结点的)线性单链表的算法。 设其头指针为 head ,数据元素类型为 ET。算法用 C 语言描述如下:struct node /* 定义线性单链表结点类型 */ ET d ; /* 定义线性单链表结点数据类型 */struct node * next ; /* 结点指针 */ ; void invlst ( struct node * head ) . struct node *p , *q ; p = head->next ; head->next = NULL ; while ( p != NULL ) q = p ; p = p->next ; q->next = head->next ; head->next = q ; return ; 43、 设有两个有序线性单链表,头指针分别为 AH 与 BH。试写出将这两个有序线性单链表合并为一个头指针为 CH 的有序线性单链表的算法。输入:头指针分别为 AH 与 BH 的两个有序线性单链表。输出:将头指针分别为 AH 与 BH 的两个有序线性单链表合并后的头指针为 CH 的有序线性单链表。算法用 C 语言描述如下(其中 ET 为数据元素类型):struct node /* 定义线性单链表结点类型 */ ET d ; /* 定义线性单链表结点数据类型 */struct node * next ; /* 结点指针 */ ; # 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 ) /* 取得一个新结点 */ if ( j->d >= i->d ) p->d = i->d ; i = i->next ; else p->d = j->d ; j = j->next ; if ( *ch = = NULL ) *ch = p ; else k->next = p ; k = p ; if ( j = = NULL ) while ( i != NULL ) p = ( struct node * ) malloc ( sizeof ( struct node ) ) ; /* 取得一个新结点 */ p->d = i->d ; i = i->next ; if ( *ch = = NULL ) *ch = p ; else k->next = p ; k = p ;else while ( j != NULL ) p = ( struct node * ) malloc ( sizeof ( struct node ) ) ; /* 取得一个新结点 */ .p->d = j->d ; j = j->next ; if ( *ch = = NULL ) *ch = p ; else k->next = p ; k = p ;if ( k != NULL ) k->next = NULL ; return ; 44、已给一个带表头结点的单链表 head,它含有重复结点,即它含有数据域的值相同的结点,试用 C 语言(或类 C 语言)写出以下算法函数:(1)删除单链表中重复的多余结点。(2)输出不含重复结点的单链表。(1) void deletenode ( NODE * head ) NODE *r, *p, *q; r = head->next;while (r != NULL ) int m = r->data ;p = r ;while ( p != NULL ) q = p; p = p->next ; if ( p->data = = m ) q->next = p->next ; free (p); p = q->next ; (2)void print ( NODE * head ) NODE *p ; p = head->next ; while ( p != NULL ) printf ( “%c” , p->data ) ; p = p->next ; printf(“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 个人的出列顺序。这个问题称为约瑟夫(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< n ; i + + ) a i = i+1 ;a n-1 = 0 ; k = k-1 ; for ( j = 0 ; j < n ; j + + ) for ( i = 0 ; i < n ; i + + ) t = k ; k = a k ; b j = k + 1; a t = a k ; k = a k ;free ( a ) ; return ;

    注意事项

    本文(数据结构作业内容答案.doc)为本站会员(小**)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开