This project includes most commonly used computer algorithms and data structures. The project has been tested on the FreeBSD 64-bit platform, Rocky Linux 64-bit platform and Cygwin 64-bit platform. The Makefile in the project is BSD-style, if you want to compile on some GNU/Linux platform and Cygwin platform, you may need to modify the Makefile.
| Directory | Description |
|---|---|
| bin | The binary executable file generated after the project is compiled. |
| lib | The static libaray file generated ater the project is compiled. |
| include | Header files |
| common | General modules of the porject. |
| utils | The utility modules designed by this project. |
| linearlist | Including Linked-List, Stack and Queue. |
| sort | Including most of the classic sorting algorithms. |
| sequentialsearch | Sequential search implemented by linked-list. |
| binarysearch | Binary search. |
| searchtree | Including Binary search tree, Red-Black tree, AVL tree, Splay tree and B+Tree. |
| heap | Heap or priority. Including Binary heap, Binomial heap, Fibonacci heap and Pairing heap. |
| hashtable | Uses linear detection method and linked-list methomd to implement. |
| skiplist | Skip list. |
| graphs | Including Union-find, Undirected Graph, Directed Graph, Minimum Spanning Tree, The Shortest Path, Euler Graph and Bipartite Graph. |
| strings | Including String sort, Trie, Ternary search trie and most String Matching algorithms. |
| searchperf | Comparison of search performance of Singly Linked List, Skip List, Red-Black Tree and Splay Tree. |