A project created to study the mechanics of AVL, Red-Black and BST trees, unit tests, databases and graphic user interface
Possible way to clone project by SSH key in command line:
git clone [email protected]:spbu-coding-2022/trees-9.git
You may build it by gradle:
./gradlew build
To run app:
./gradlew run
Aware : build method depends on operating system
Implemented 3 basic tree:
- Binary search tree
- Red-Black tree
- AVL tree
Each tree support add, remove, find and print functions. Node consist of comparable key and value
Unit tests (by JUnit 5)
Tests aimed at checking different cases:
- Find existing and not existing nodes
- Add up to 10000 nodes
- Special cases of balancing
- Remove existing and not existing nodes
For all trees, the corresponding validator is implemented
3 different ways to store trees: SQLite, Neo4j and .csv files
Capability:
- Insert all nodes to tree
- Write all nodes to DB
- Delete itself
It's okey if: relationships of nodes changed when the application is restarted