├── B-树 ├── BTree.h ├── README.md └── Test.cpp ├── 红黑树 ├── RBTree.h └── TestRBTree.cpp ├── AVLTree ├── AVLTree.h └── TestAVLTree.cpp ├── TestBinaryTree.cpp └── 二叉查找树 └── SearchBinaryTree.cpp /B-树/BTree.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Lynn-zhang/BalanceTree/HEAD/B-树/BTree.h -------------------------------------------------------------------------------- /红黑树/RBTree.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Lynn-zhang/BalanceTree/HEAD/红黑树/RBTree.h -------------------------------------------------------------------------------- /AVLTree/AVLTree.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Lynn-zhang/BalanceTree/HEAD/AVLTree/AVLTree.h -------------------------------------------------------------------------------- /TestBinaryTree.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Lynn-zhang/BalanceTree/HEAD/TestBinaryTree.cpp -------------------------------------------------------------------------------- /二叉查找树/SearchBinaryTree.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Lynn-zhang/BalanceTree/HEAD/二叉查找树/SearchBinaryTree.cpp -------------------------------------------------------------------------------- /B-树/README.md: -------------------------------------------------------------------------------- 1 | C++模板类封装 2 | 3 | B-树定义: 4 | 5 | 一棵m阶B-树是拥有以下性质的多路查找树: 6 | 7 | 1、非叶子结点的根结点至少拥有两棵子树; 8 | 9 | 2、每一个非根且非叶子的结点含有k-1个关键字以及k个子树,其中⌈m/2⌉≤k≤m; 10 | 11 | 3、每一个叶子结点都具有k-1个关键字,其中⌈m/2⌉≤k≤m; 12 | 13 | 4、key[i]和key[i+1]之间的孩子节点的值介于key[i]、key[i+1]之间 14 | 15 | 5、所有的叶子结点都在同一层。 16 | 17 | ps: ⌈m/2⌉是向上取整 18 | 19 | 博客链接:http://www.cnblogs.com/Lynn-Zhang/p/5595338.html 20 | -------------------------------------------------------------------------------- /B-树/Test.cpp: -------------------------------------------------------------------------------- 1 | #define _CRT_SECURE_NO_WARNINGS 1 2 | 3 | #include 4 | #include"BTree.h" 5 | using namespace std; 6 | 7 | void Test() 8 | { 9 | int a[] = { 53, 75, 139, 49, 145, 36, 101 }; 10 | BTree bt; 11 | for (int i = 0; i < sizeof(a) / sizeof(a[0]); i++) 12 | { 13 | bt.Insert(a[i]); 14 | } 15 | bt.InOrder(); 16 | } 17 | int main() 18 | { 19 | Test(); 20 | system("pause"); 21 | return 0; 22 | } -------------------------------------------------------------------------------- /红黑树/TestRBTree.cpp: -------------------------------------------------------------------------------- 1 | #define _CRT_SECURE_NO_WARNINGS 1 2 | 3 | #include 4 | using namespace std; 5 | #include"RBTree.h" 6 | 7 | void TestRBTree() 8 | { 9 | int array[] = { 16, 3, 7, 11, 9, 26, 18, 14, 15, 20, 100,0,1,2,5}; 10 | RBTree tree; 11 | for (int i = 0; i < sizeof(array) / sizeof(array[0]); i++) 12 | { 13 | tree.Insert(array[i], i); 14 | } 15 | 16 | tree.InOrder(); 17 | bool ret=tree.Check(); 18 | if (ret == true) 19 | cout << "RBTree is in Balanced !" << endl; 20 | else 21 | cout << "RBTree not in a state of balance !" << endl; 22 | 23 | } 24 | 25 | int main() 26 | { 27 | TestRBTree(); 28 | system("pause"); 29 | return 0; 30 | } -------------------------------------------------------------------------------- /AVLTree/TestAVLTree.cpp: -------------------------------------------------------------------------------- 1 | #define _CRT_SECURE_NO_WARNINGS 1 2 | 3 | #include 4 | using namespace std; 5 | 6 | #include"AVLTree.h" 7 | 8 | void Test() 9 | { 10 | AVLTree tree; 11 | int a[] = { 16, 3, 7, 11, 9, 26, 18, 14, 15 ,1,5,12,20}; 12 | for (size_t i = 0; i < sizeof(a) / sizeof(a[0]); ++i) 13 | { 14 | tree.Insert(a[i], i); 15 | } 16 | 17 | tree.InOrder(); 18 | cout <<"height="<< tree.Height() << endl; 19 | bool ret = tree.IsBalance(); 20 | if (ret == true) 21 | cout << "This AVLTree is in balanced !" << endl; 22 | else 23 | cout << "This AVLTree is in a state of imbalance !" << endl; 24 | } 25 | 26 | int main() 27 | { 28 | Test(); 29 | system("pause"); 30 | return 0; 31 | } --------------------------------------------------------------------------------