对于查找分静态查找和动态查找。

静态查找:在已有的数据中进行查找,查找过程中不改变查找表中的元素(不插入也不删除)。

动态查找:查找过程中,插入查找表中不存在的元素,或者从中删除已经存在的元素。

1.静态查找有顺序查找和折半查找(二分查找)

   对于无序的查找表进行顺序查找,也就是与查找表中的元素逐一比较;二分查找是对于有序的查找表,设置一个mid分割点。

2.动态查找为了保证查找效率和插入删除效率的提高,提出了二叉搜索树,但是二叉搜索树的形状(也就是深度)随着数据元素输入顺序不同而不确定,而深度恰恰影响查找效率,为了提高查找,插入和删除元素的效率(因为得先查找才能插入删除),因此引入了平衡二叉树和红黑树

 这里在二叉树的基础上实现了二叉搜索树,只是简单的建立一颗二叉搜索树。

代码见github: https://github.com/liuamin/Binary-tree-and-binary-search-Tree

binsearch.h头文件中

红黑树的实现在https://github.com/liuamin/Red_black-Tree/tree/red_black-tree

redblack.h中

posted on 2017-03-29 09:31  liuamin  阅读(1486)  评论(0编辑  收藏  举报