對於查找分靜態查找和動態查找。git
靜態查找:在已有的數據中進行查找,查找過程當中不改變查找表中的元素(不插入也不刪除)。github
動態查找:查找過程當中,插入查找表中不存在的元素,或者從中刪除已經存在的元素。spa
1.靜態查找有順序查找和折半查找(二分查找)get
對於無序的查找表進行順序查找,也就是與查找表中的元素逐一比較;二分查找是對於有序的查找表,設置一個mid分割點。it
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中