- 1、本文档共54页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
[电脑基础知识]c语言数据结构基础 2
13.4 树 13.5.1 树的定义 13.4.2 二叉树 (Binary Tree) 1.二叉树的定义及其性质 (1) 二叉树的定义 (5)树与二叉树的区别 A. 树的结点个数至少为1,而二叉树的结点个数可以为0。 B. 树中结点的最大度数没有限制,二叉树结点最大度数为2。 C. 树的结点子树无左、右之分,二叉树的结点子树有明确的左、 右之分。 13.5.3 图的应用—最小生成树 在连通网上,通过一定的策略, 把所有的顶点都访问到,这样把这些顶点和经过的边连接起来, 就是生成树 生成树中最有意义的问题是:在n 个城市之间建立通讯网络,只需要n-1 条线路即可连通这n 个城市。由于每条线路所付出的经济代价是不同的,如何在所有可能的线路中选择n-1条线路,使总的耗费最小。这是关于构造连通图的最小代价生成树(最小生成树)问题。 [例] 构造最小生成树 0,10,21,80,50 10,0,36,43,30 21,36,0,12,20 80,43,12,0,30 50,30,20,30,0 连通网的邻接矩阵 E A B C D 10 21 80 50 30 43 36 12 20 A B C D 10 30 21 E 连通网 连通网的最小生成树 30 12 13.6 查找 查找——也叫检索,是根据给定的某个值,在表中确定一个关键字等于给定值的记录或数据元素.不同的数据结构采用不同的查找方法。查找的效率直接影响数据处理的效率。 关键字——是数据元素中某个数据项的值,它可以标识一个数据元素. 查找方法评价 查找速度 占用存储空间多少 算法本身复杂程度 平均查找长度ASL(Average Search Length):为确定记录在表中的位置,需和给定值进行比较的关键字的个数的期望值叫查找算法的平均查找长度. 查找的结果:查找成功:找到满足条件的结点 查找失败:找不到满足条件的结点。 · 可以采用从前向后查,也可采用从后向前查的方法。 · 在平均情况下,大约要与表中一半以上元素进行比较,效率较低。平均查找长度较大。 · 在下面两种情况下只能采取顺序查找: a. 线性表为无序表(元素排列是无序的); b. 即使是有序线性表,但采用的是链式存储结构。 13.6.1 顺序查找(线性查找) 查找过程: 对给定的一关键字K,从线性表的一端开始,逐个进行记录的关键字和K的比较,直到找到关键字等于K的记录或到达表的另一端。 1 . 顺序查找 (线性表在顺序存储结构下的顺序查找) 数据结构: typedef struct{ int key; float data; }SSTable; 每个结点包含两部分内容:Key 和data 0 1 2 3 4 5 6 7 (a) 初态 40 80 30 60 10 20 25 (b) K=80 (return i=4) 80 40 80 30 60 10 20 25 0 1 2 3 4 5 6 7 (c) K=90 (return i=0 ) 0 1 2 3 4 5 6 7 90 40 80 30 60 10 20 25 顺序查找的算法: int Search_seq(SSTable ST[ ], int n, int key) { int i=n; ST[0].key=key; while(ST[i].key!=key) i- -; /*从表尾往前查*/ return i; } 监视哨 使用了监视哨,在查找过程中,不用每一步都去判断是否查找结束。 找到:返回元素在线性表中的存储位置; 未找到:返回0。 查找成功时的平均查找次数为: ASL=(1+2+3+4+……+n)/n=(n+1)/2 查找不成功时的比较次数为: n+1 则顺序查找的平均查找长度为: ASL==((n+1)/2+n+1)/2=(n+1)3/4 顺序查找的优点:算法简单,无需排序,采用顺序和链式存储均可。 缺点:平均查找长度较大。 根据上述算法可知: 13.6.2 折半查找(二分法查找) 思想:先确定待查找记录所在的范围,然后逐步缩小范围,直到找到或确认找不到
文档评论(0)