DSAA stands for data structures and algorithms.
This project is meant to use C++ programming language to implement various data structure and algorithms. It's fully implemented in C++17 and intended to port to C++20.
development branch is unstable branch.
master branch store the latest update that can be used to create a realease branch.
Clone the project by using git command.
git clone https://github.com/nongvantinh/dsaa -b master
You need the following prerequisites installed on your platform:
Compiler needed to build this library is:
-
clang/clang++ version 12.0.0
-
or gcc/g++ version 9.3.0.
-
scons build system version >= 4.1.
You can install those via scoop/chocolatey on windows machine.
With PowerShell, you must ensure Get-ExecutionPolicy is not Restricted.
Run Get-ExecutionPolicy. If it returns Restricted, then run:
Set-ExecutionPolicy Bypass -Scope Process
Install chocholatey with:
Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://chocolatey.org/install.ps1'))
And install scoop with:
Invoke-Expression (New-Object System.Net.WebClient).DownloadString('https://get.scoop.sh')
- You need to reboot your PC to continue
Now install the following packets:
choco install llvm mingw python make
scoop install scons yasm
When you have the prerequisites installed you can easily build by command:
scons -j16
Cross-compile currently doesn't support yet.
The command above will automatically detect host platform and build library for you. other command option can be found by using command:
scons -h
To test it run ./bin/host_platform/dsaa.host_latform.build.bits.extension --reporter compact --success
e.g on Windows machine with 64 bits: .\bin\windows\dsaa.windows.debug.64.exe --reporter compact --success
You need to fulfil the prerequisite first.
scons target=value build=value2 -j16
Where: value can be static_library or shared_library
and: value2 can be d or debug or r or release
Library after build will be placed in bin/host_latform/library_name.host_platform.build.bit.extension
This library use Catch2 testing framework for testing project.
This library written by Nông Văn Tình. I spent time and effort to write this.