查找java数据结构.docx
《查找java数据结构.docx》由会员分享,可在线阅读,更多相关《查找java数据结构.docx(9页珍藏版)》请在冰豆网上搜索。
查找java数据结构
查找表的概念
查找表是由同一类型的数据元素构成的集合。
表中每个数据元素均由若干个数据项组成,每个数据项的值称为该数据元素的关键字,其中可以唯一标识一个数据元素的关键字称为主关键字;否则称为次关键字。
举例:
查找
●线性表查找
●树结构查找
线性表查找:
顺序查找
折半查找
顺序查找的实现过程(示例):
回顾顺序查找的基本思想
顺序查找的演示视频
演示代码:
折半查找:
基本思想:
使用折半查找首先有一个前提条件:
这个线性表必须是已经排序好的有序序列
折半查找的示意图:
折半查找的演示视频
关键代码:
二叉查找树
特点:
二叉查找树的示意图:
中序遍历二叉查找树:
构造二叉查找树之插入算法
根据二叉查找树的特点总结出的:
示例图:
代码分析:
示例:
对于同一组数据采用不同的顺序,可以生成不一样的二叉查找树。
构造二叉查找树之删除算法
1.删除的节点没有子节点
直接将其父节点的相应位置的引用设置为空即可。
2.当前删除节点只有一个子节点。
用要删除的节点的子节点代替被删除节点即可。
3.当前删除的节点有两个子节点。
用最接近于删除节点的中序后继节点来代替它。
实际举例:
第三种不做详细介绍
二叉查找树的查找
二叉查找树查找的视频演示
代码讲解:
平衡二叉树
除根节点满足了是不行的,剩下的节点也要满足这个特点。
平衡因子:
该结点的左右子树的高度之差,就称为该结点的平衡因子。
平衡因子只可能是-1、0、1。
优点:
可以提高查找效率。
平衡二叉树的调整
使用二叉排序树保持平衡的基本思想是:
每当在二叉排序树中插入一个节点时,首先检查是否因插入而破坏了平衡,若
*是,则找出其中的最小不平衡二叉树,在保持二叉排序树特性的情况下,调整最小不平衡子s树中节点之间的关系,以达
*到新的平衡。
所谓最小不平衡子树指离插入节点最近且以平衡因子的绝对值大于1的节点作为根的子树。