![[IT认证]程序员考试笔记十四.doc_第1页](http://file.renrendoc.com/FileRoot1/2019-1/8/4d5a2090-f858-4e90-ba4d-d4bf38fa8b83/4d5a2090-f858-4e90-ba4d-d4bf38fa8b831.gif)
![[IT认证]程序员考试笔记十四.doc_第2页](http://file.renrendoc.com/FileRoot1/2019-1/8/4d5a2090-f858-4e90-ba4d-d4bf38fa8b83/4d5a2090-f858-4e90-ba4d-d4bf38fa8b832.gif)
![[IT认证]程序员考试笔记十四.doc_第3页](http://file.renrendoc.com/FileRoot1/2019-1/8/4d5a2090-f858-4e90-ba4d-d4bf38fa8b83/4d5a2090-f858-4e90-ba4d-d4bf38fa8b833.gif)
全文预览已结束
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
今天继续是讲二叉树,树一个重要的操作就是遍历。所谓遍历就是输出所有的结点,二叉树不同于树只有前序和后序遍历,因为二叉树左右子树木特点,所有还有另一种遍历方法,就是中序。这些遍历也十分简单,最主要的还是看根遍历的前后来分别是前中后序遍历的。下面看图第十四天这些颜色圈着代表分别当一个树来看,所有我们知道其规律就可以写出程序来了,程序也十分简单,如下:out1(btree *t) /*前序遍历*/ printf(%d,t-data);out1(t-left);out1(t-right); out2(btree *t) /*中序遍历*/out2(t-left);printf(%d,t-data);out2(t-right);out3(btree *t) /*后序遍历*/out3(t-left);out3(t-right);printf(%d,t-data);上面三种遍历是不是很简单(这个递归想一想就明白的了),而且他们很像似只是改变了行位置,我们由此可以看出如果是前序的那个输出是最先的,跟着才是进入左树到右树。看完了遍历就看看二叉查找树,二叉查找树是这样的一种树,他的左结点都小于根,右结点都大于左结点。有这么一种性质所以他的插入特别好办,用中序遍历的方法设计这个排序算法特别好,因为这个树本来就是这样排序下来的。下面就来看看程序是如何实现的insert(btree *h,btree *p)if(h= =NULL) h=p; p-left=p-right=NULL; /*最后一个结点一定是没有左右子树*/elseif(p-datadata) insert (h-left);if(p-datah-data) insert(h-right);看上去很简单的几行,可是因为递归就得弄明白一些思路,看看它是如何产生插入到合适的位置,和前一堂课的建立二叉树思路一样,也是比较他的值大小排位置。大家要好好的看明白。就是因为我们班里的几个同学都对树比较陌生,跟不上来所以老师决定先把树告一断落,其实树还有很多方面的知识还没有讲到,只好等过一排思维清晰了才可以继续,其实如果我之前没有自己看过一下,到老师说的时候可能真的听不明白,突意间飞来的大难点啊。时间真的用了很多在这些树上,而且还没有什么大的效果。老师也马上看机行事,跳过这节来讲一下查找这章。到于查其实我们平常也接触得多了,特别是我以前学Foxbase的时候,基本上什么都离不开查找,不过当时的查找就是这么一条命令就搞定了。现在要自己编出来也真的挺好玩的,以前完全封装性的Foxbase命令,今天就要编成这个系统的C语言来深入研究它,之前说的链表和结构就是用来做数据库的了(如果我没有估错的话)。说多了费了,马上讲讲学习查找的情况。顺序查找相信大家都知道原理了,因为一个一个顺序的判断是否相等这是最常见的了。我在这里就不再多讲,继续讲下一个,折半查找法。在讲这个之前老师和我们做了一个游戏,就是他在纸上写下一个数值,范围在1到1000内让我们来猜,如果我们说的数大过这个数老师就是太大了,反之就太小了。其实这个折半原理早就在QB里见过了,也没有什么难度嘛。很快我们就按照那个方法给猜出来了得数,老师都见我们懂了的样子就直接叫我们写个程序好了,当时我一时看到这题有重复的规律性就一直以递归的思路来做这题了,可是我错了,不过这个错令我学到了另一个技巧。下面先来看看我的程序,如下:假如a已经是有了值,而且还是顺序排好的了。serch(int r, int k, int n)int mid;if(rk) return(-1);elsemid=(r+k)/2;if(amidn) serch(r,mid-1,n);if(amid k) return (-1);mid =(r+k)/2;if(amid= =n) return(mid);elseamidn ? r=mid+1; k=mid-1;return (serch(r,k,n) ); /*巧妙的就是这里了*/一条程序可以反应该人的水平说
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 人工智能在用户研究中的应用-洞察及研究
- 偏瘫患者的护理相关试题及答案
- 物流仓储库存管理信息系统操作指南
- 小学生文明礼仪教育活动记录表
- 全国医保定点药店及编码表
- 房地产开发项目土地管理手册
- 公路运输车辆日常检查与维护规范
- 高校学生安全行为规范手册
- 小学《海的女儿》主题教学活动设计
- 新能源汽车售后维修流程
- 广东工业大学年《电机学》期末试题及答案解析
- 解读《义务教育体育与健康课程标准(2022年版)》2022年体育与健康新课标专题PPT
- 2019版外研社高中英语必修三单词默写表
- 食堂合作协议范本食堂档口合作协议.doc
- 直接还原铁生产工艺
- 建筑识图题库及答案
- 《幂的运算》习题精选及答案
- 异质结TCO设备:RPD与PVD比较分析(2021年).doc
- PPT汇报评分表(共1页)
- ESD防静电培训教材.ppt
- 《春》复习课件
评论
0/150
提交评论