C/C++ implementations of data structures, algorithms, and common designs.
Name | Sources | Notes |
---|---|---|
SharedPtr | test .hpp | My own version of std::shared_ptr. |
UniquePtr | test .hpp | My own version of std::unique_ptr. |
Linked List | test .hpp | Doubly linked list and merge sort. |
Binary Heap | test .hpp | Heap implemented with complete binary tree. |
Hash Table | test .hpp | Hash table with conflicting entries appended to linked list. |
AVL Tree | test .hpp | Self-balancing binary search tree. |
Graph | test .hpp | Graph implemented with adjacency list and matrix. |
Sorting | test .hpp | Common sorting algorithms. |
N-Puzzle | test .hpp | A* search to solve the N-Puzzle problem. |
Dijkstra | test .hpp | Algorithm to find shortest path between nodes in a graph. |
MD5 | test .hpp | MD5 hash function. |
Calculator | test .hpp .cpp | Infix arithmetic expression calculator based on recursive descent parser. |
Web Server | example .h .c | Single-threaded web server. |
Greeting | example .h .c | Funny ASCII art for a greeting. |
Build with CMake:
mkdir build
cd build
cmake ..
cmake --build .
C++ builds will be located at build/cpp
. C++ implementations come with unit tests which can be run with CTest:
ctest --test-dir cpp
C builds will be located at build/c
. C implementations don't have unit tests. Please run each binary individually:
./c/example_websvr
See the LICENSE file for license rights and limitations.