网站大量收购独家精品文档,联系QQ:2885784924

计算机数与据结构复习题1 .ppt

  1. 1、本文档共54页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
计算机数与据结构复习题1

复 习 11 将序列(1,12,5,8,3,10,7,13,9),建立一棵二叉排序树,并画出删除“12”后的树结构。 11答: 建立一棵二叉排序树如下,删除“12”后的树结构。 14 对如下图所示的树,画出其如下的表示方法。 (1)双亲表示法 (2)孩子链表表示法 (3)孩子兄弟表示法 15、如图所示,在栈的输入端元素的输入序列为A,5,B,求出在栈的输出端可得到的以字母开头的所有输出序列。 16.说明数组和链表的区别,各有何优缺点? ③ 数据的存取操作:访问链表中的结点必须从表头开始,是顺序的存取方式,而数组元素的访问是通过数组下标来实现的,是随机存取方式,因此,在数据存取方面 ,数组优于链表。 ④ 数据的合并与分离:链表优于数组,因为只需要改变指针的指向。 18. 冒泡排序算法如下: 算法Bubble(R, n) Bubble 1[终止位置初始化] BOUND←n. Bubble2 [冒泡过程] WHILE BOUND≠0 DO ( t←0. FOR j=1 TO BOUND-1 DO IF KjKj+1 THEN (RjRj+1. t←j). BOUND←t) ■ 18.采用以上算法Bubble对下列数据序列进行排序,所需要的冒泡趟数(即Bubble2步骤中WHILE循环执行的次数)是多少?序列中哪一个元素的位置决定着冒泡的趟数(即如果移动该元素,排序过程中的冒泡趟数将会降低)? 5, 2, 15, 1, 16, 4, 9, 7, 6, 12, 8, 10, 13, 14, 17, 19, 11, 20, 3, 21, 18, 22 推论7.1 算法Bubble的冒泡 趟数A=1+max {b1,b2,…,bn}; 记录交换次数B= ; 关键词的比较次数C= ,其中Ci等于第i趟 冒泡时的BOUND减1. 18 答: 17趟, 移动元素3 冒泡排序的趟数可以降低。 二、算法设计题: 1 在链表中找出值最小的元素,并分析算法的时间复杂性。 FINDMIN(head.min) FM1:[初始化] p ← head. IF (p!= NULL) THEN min ← data(p). p ← next(p). FM2: [查找最小元素] WHILE (p != NULL) ( IF (min data(p) THEN min ← data(p). p ← next(p). ) ▌ 分析时间复杂性 规定算法的基本运算为元素的比较。 无论当前链表中最小元素的位置在哪里,都要遍历整个链表。即任意输入i,T(i) = n-1,n为元素个数。 所有输入i出现的概率之和为1。 结论: E(n) = n-1; W(n) = n-1. 2 试设计一个算法,使得在O(n)的时间内重排数组,将所有取负值的排序码排在所有取正值(非负值)的排序码之前。 reArrange(Element *list,int n) { int i=0, j=n-1; while(ij) while(list[i].GetKey()0)i++; while(list[j].GetKey()=0)j--; swap(list[i],list[j]); i++;j--; } }

文档评论(0)

ctuorn0371 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档