对于查找分静态查找和动态查找。
静态查找:在已有的数据中进行查找,查找过程中不改变查找表中的元素(不插入也不删除)。
动态查找:查找过程中,插入查找表中不存在的元素,或者从中删除已经存在的元素。
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中