Solved exercises of the Design and Analysis of Algorithms class.
I do not guarantee the correctness of the code! ❌
- ✅ All the necessary operations have been implemented.
- ✅ They were tested with some unit tests.
- ❌ Test coverage is not 100%.
- 👀 Refactoring for better code readability
- 🪜 Better algorithms (+ recursion)
- 🔁 Better unit tests
The purpose of this programs is to test the ability to solve problems that consist in the basics of working with: 📚
1. Generalized trees
2. Binary Trees
3. AVL trees
4. Huffman codes
5. B trees
6. Finding Trees
7. Graphs
8. Weighted Graphs
9. Directed Graphs
The programs can be build with C or C++ compilers.
- Operating System: MacOS, Windows, Linux(Ubuntu for example), Windows Subsystem for Linux. (WSL)
- Programming Language: C
- Code Editor: Visual Studio Code
I used WSL as operating system, VSCode as code editor and to compile the code i made use of gcc compiler.
-
Install c/c++
sudo apt-get install build-essential
-
Compile from command line
gcc -Wall app.c -o app
-
VSCode C/C++ extesion pack
(https://marketplace.visualstudio.com/items?itemName=ms-vscode.cpptools-extension-pack)
-
Configure VSCode to run and debug C/C++ programs inside VSCode under WSL.
https://code.visualstudio.com/docs/cpp/config-wsl
-
Install framework for C unit testing and run programs.
sudo apt install check
gcc -Wall main.c generalized-trees.c -o main
gcc -Wall generalized-trees-test.c ../source/generalized-trees.c -o test -pthread -lcheck_pic -pthread -lrt -lm -lsubunit
https://sites.google.com/site/razvanaciu/limbaje-formale-si-tehnici-de-compilare
Contributions are what make the open source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.
If you have a suggestion that would make this better, please fork the repo and create a pull request. You can also simply open an issue with the tag "enhancement". Don't forget to give the project a star! Thanks again!
- Fork the Project
- Create your Feature Branch (
git checkout -b feature/AmazingFeature
) - Commit your Changes (
git commit -m 'Add some AmazingFeature'
) - Push to the Branch (
git push origin feature/AmazingFeature
) - Open a Pull Request
Denis Gruia
- Twitter - @denisgruiax
- Email - denis.gruiax@icloud.com
- Project Link - https://github.com/denisgruiax