Dsac is a project containing the implementation of all the basic algorithms and data structures, as well as a bit of concurrency. Dsac is focused on preparing for an interview, on forming the reader's full understanding of the internal implementation of the algorithm and data structures.
dsac
contains the following structure of the project
algorithm
Algorithms
Thealgorithm
directory contains classic sorting algorithms. The main implementation is placed in the folderalgorithm/detail
.container
Data structure
Thecontainer
directory contains classic linear and non-linear data structure.concurrency
Concurrency algorithms and data structures
Thecontainer
directory contains concurrency primitives for writing asynchronous code efficiently.memory
Smart pointers and Allocators
Thememory
directory contains implementation of smart pointers and different types of allocators.pattern
Software design pattern
Thepattern
directory contains implementation of common patterns to solve common problems in software design.examples
A set of examples on working with the POSIX API
Theexamples
directory contains examples with working POSIX API for writing backend apps using concurrency primitives from directoryconcurrency
.
The current status of the project can be found at the whimsical.com/dsac
This repository also contains examples of the implementation of various algorithms and the theory of distributed systems
to illustrate the use of concurrency. Examples of the implementation of distributed algorithms can be found in the
folder with the prefix examples/dist.*
To install dsac
its dependencies and build this project, you just have to do:
Build the project
mkdir cmake-build-release && cd cmake-build-release
cmake .. && cmake --build .
Dsac is released under the terms of the MIT license. See COPYING for more information or see https://opensource.org/licenses/MIT.