由平衡二叉树定义.PPT

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

图9-21 拉链法处理冲突时的哈希表 动画演示 3. 建立一个公共溢出区 设哈希函数产生的哈希地址集为[0,m-1],则分配两个表: (1)一个基本表 ElemType base_tbl[m];每个单元只能存放一个元素; (2)一个溢出表 ElemType over_tbl[k];只要关键字对应的哈希地址在基本表上产生冲突,则所有这样的元素一律存入该表中。查找时,对给定值kx通过哈希函数计算出哈希地址i,先与基本表的base_tbl[i]单元比较,若相等,查找成功;否则,再到溢出表中进行查找。 (1)查找又称为检索,是从一个数据元素(记录)的集合中,按某个关键字值查找特定数据元素(记录)的一种操作。若表中存在这样一个数据元素(或记录),则查找成功;否则,查找失败。 (2)查找可以分为静态查找和动态查找。在查找过程中仅查找某个特定元素是否存在或它的属性的,称为静态查找;在查找过程中对查找表进行插入元素或删除元素操作的,称为动态查找。 (3)查找算法的效率,主要是看要查找的值与关键字的比较次数,通常用平均查找长度(ASL)来衡量。 (4)顺序查找对查找表无任何要求,既适合无序表,又适合有序表,其查找成功的平均查找长度为(n+1)/2,时间复杂度为O(n)。 小 结 (5)二分查找要求表中元素必须按关键字有序,其平均查找长度为近似(log2(n+1)-1),时间复杂度为:O(log2n)。 (6)分块查找,每块内的元素可以无序,但要求块与块之间必须有序,并建立索引表。 (7)二叉排序树是一种有序树,在它上面的查找类似于二分查找的判定树上的查找。这是一种动态查找过程,在查找过程中插入结点,不必移动其它结点,仅需修改指针即可。其查找性能介于二分查找和顺序查找之间。 (8)散列查找是通过构造散列函数来计算关键字存储地址的一种查找方法,时间复杂度为:O(1)。 (9)两个不同的关键字,其散列函数值相同,因而得到同一个表的相同地址的现象称为冲突。 (10)常用的解决冲突的方法有:线性探测法、平方探测法、链地址法等。 验证性实验9 查找子系统 1.实验目的 (1)通过查找实验理解查找的基本算法。 (2)熟悉各种查找方法的适用场合及平均查找长度。 (3)掌握静态查找和动态查找的区别。 (4)掌握顺序查找、二分查找的基本思想及其算法。 (5)掌握二叉排序树基本思想及其算法 2.实验内容 (1)编写顺序查找程序; (2)编写二分查找程序; (3)编写建立二叉排序树的程序; (4)编写在二叉排序树上的查找、插入、删除接点的程序; (5)编写使二叉排序树中序输出的程序; (6)设计一个选择式菜单,一级菜单形式如下: 查 找 子 系 统 **************************************** * 1------顺 序 查 找 * * 2------二 分 查 找 * * 3------二 叉 排 序 树 * * 0------返 回 * **************************************** 请选择菜单号(0—3): 自主设计实验9 哈希查找 1.实验目的 (1)通过查找实验理解查找的基本算法。 (2)熟悉各种查找方法的适用场合及平均查找长度。 (3)掌握静态查找和动态查找的区别。 (4)掌握顺序查找、二分查找的基本思想及其算法。 (5)掌握二叉排序树基本思想及其算法 2.实验内容 (1)编写顺序查找程序; (2)编写二分查找程序; (3)编写建立二叉排序树的程序; (4)编写在二叉排序树上的查找、插入、删除接点的程序; (5)编写使二叉排序树中序输出的程序; (6)设计一个选择式菜单,一级菜单形式如下: l 一个无序序列可以通过构造二叉排序树而成为一个有序序列。 l?每次插入新结点都是二叉排序树上新的叶子结点,不必移动其它结点,仅需改动某个结点指针,由空变为非空即可。 (3)生成二叉排序树的算法 BSTree CreateBST(void) { BSTree T; KeyType Key; T=NULL; printf ("请输入一个整数关键字(输入0时结束输入):"

文档评论(0)

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

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

1亿VIP精品文档

相关文档