Notes on Data Structures and Algorithms in C++ binary search merge sort shell sort union find stack heap radix sort bst bst using std::shared_ptr bst traversal multiway trees 2 3 tree 2 3 4 tree rb tree