Implementation of data structures and algorithms in C++, like the Standard Template Library (STL)
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
.github
external
src
test
.gitignore
.gitmodules
.travis.yml
CMakeLists.txt
README.md
_config.yml
build.sh
build_after_cmake.sh
plan.md
stlmp.png

README.md

stlmp

Implementation of data structures and algorithms in C++, like the Standard Template Library (STL). Tests written using googletest, using the template bast/gtest-demo.

Build Status License

Implementation tree

src
├── algorithms
│   └── flood_fill.hpp           # flood fill algorithm
│   └── array_rotation.hpp       # array rotation algorithm using reversing
├── disjoint_set
│   └── disjoint_set.hpp         # disjoint set implementation
├── graph
│   ├── adjacency_list.hpp       # graph implementation with adjacency list
│   ├── adjacency_matrix.hpp     # graph implementation with adjacency matrix
│   └── topological_sort.hpp     # topological sort (adjacency list)
├── heap
│   └── heap.hpp                 # heap implementation
├── linked_list
│   ├── dll.hpp                  # doubly linked list 
│   └── ll.hpp                   # singly linked list
├── main.cpp                     # ignore this file
├── queue
│   └── queue.hpp                # queue implementation
├── sorting
│   ├── bubble.hpp               # bubble sort
│   ├── insertion.hpp            # insertion sort
│   ├── merge.hpp                # merge sort
│   ├── quick.hpp                # quick sort
│   ├── radix.hpp                # radix sort
│   ├── selection.hpp            # selection sort
│   ├── heap.hpp                 # heap sort
│   └── shell.hpp                # shell sort
├── search
│   ├── binary.hpp               # binary search
│   ├── fibonacci.hpp            # fibonacci search
│   └── jump.hpp                 # jump search
├── stack
│   └── stack.hpp                # stack implementation
└── tree
    ├── bst.hpp                  # general tree implementation
    ├── segment_tree.hpp         # segment tree implementation
    └── tree.hpp                 # binary search tree

Building

  • Install C++17
$ sudo add-apt-repository -y ppa:ubuntu-toolchain-r/test
$ sudo apt-get update -qq
$ sudo apt-get install g++-6
$ sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-6 90
  • Run build script
$ ./build.sh
  • If there are any changes in the code and you need to build again, run the second script.
$ ./build_after_cmake.sh

Plan

You can take a look at the implementation plan here

License

MIT