算法与数据结构习题3.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
算法与数据结构习题3

习题3 一、单项选择题 1. 将一棵有100个结点的完全二叉树从根开始,每层从左到右依次对结点进行编号,根结点编号为1,则编号最大的非叶子结点的编号为( )。 A.48 B.49 C.50 D.51 2. 在待排序的元素序列基本有序的前提下,效率最高的排序算法是( )。 A、选择排序 B、插入排序 C、快速排序 D、归并排序 3. 一个具有n个顶点的连通无向图的生成树中有( )条边。 A、n-1 B、n C、n/2 D、n+1 二、填空题 1. 在树形结构中,树根结点没有前驱结点,其余每个结点有且只有_______个前驱结点;叶子结点没有_______结点。 2. 若按层次顺序将一棵有n个结点的完全二叉树的所有结点编号为1到n,那么,当i为_______且不等于1时,结点i的左兄弟是结点i-1,否则结点i没有左兄弟;当i=(n-1)/2时,结点i的右子女是_______,否则结点i没有右子女。 3. 在单链表中,除了首元结点外,任一结点的存储位置由 指示。 4. 将下列表达式的复杂度由小到大重新排序后的正确顺序为 。 A、2n B、n! C、n5 D、10000 E、n*log2n 三、判断题 1. 二叉树中所有结点个数是2k-1-1,其中k是树的深度。( ) 2. 顺序存储方式的优点是存储密度大,且插入、删除运算效率高。( ) 3. 链表的物理存储结构具有同链表一样的顺序。( ) 4. 对于不同的使用者,一个表结构既可以是栈,也可以是队列,也可以是线性表。( ) 四、简答题 1. 编写一个算法,对于输入的十进制非负整数,将它的二进制表示打印的算法写出来。 2. 写一个递归算法来计算并返回链表的长度,并在程序中做出相应的文字说明。 3. 给出栈的最常用的5种操作,并说明它们的功能。 4. 什么是内排序?什么样的排序算法是稳定的?快速排序稳定吗?为什么? 5. 什么是二叉树的高度?什么是完全二叉树?什么是满二叉树? 习题答案 一、单项选择题 题号 1 2 3 答案 C B A 二、填空题 题号 答案 1 1;后续 2 奇数;2i+1 3 其直接前驱结点的链域的值 4 DECAB 三、判断题 题号 1 2 3 4 答案 × × × √ 四、简答题 1. Void print_bin(int dec_number){ /*将十进制非负整数转化为二进制数打印出来*/ PSeqStack pastack; Int temp =dec_number; If (temp0){ Printf(“Error!\n”); Return; } Pastack= creatEmptyStack()_seq();/*建立一个空栈*/ If(pastack = = NULL)return; While(temp0){ Push_seq(pastack,temp%2); Temp/=2; } While(!isEmptyStack_seq(pastack)){ Printf(“%d”,top_seq(pastack)); Pop_seq(pastack); } Free(pastack); } 2. 答: int length(LinkList llist){ /*计算单链表list的长度*/ If(llist = = NULL) return(); return1+length(llist-link); } 3. 答: (1) void push(ST,x) 将元素x插入栈ST的顶端 (2) void pop(ST) 从栈ST顶端删除一个元素 (3) DataType top(ST) 读栈ST顶端的元素 (4) int isEmpty(ST) 判断栈ST是否为空栈 (5) pStack creatEmptyStack() 创建一个空栈 4. 答: (1)排序过程中,数据全放在内存中处理的排序方法称为“内排序”。 (2)若经过排序后,文件中排序码相等的记录之间的相对

文档评论(0)

kakaxi + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档