A simple and functional B+ Tree illustration & Visualization using
Python & GraphViz
- Table of Contents
- About The Project
- Getting Started
- Contributing ✨
- Authors
- License
- Disclaimer
- Security
- Acknowledgements
This B+ Tree implementation was created as part of an assignment for the University subject Databases II on the 5th Semester of [CS Dept., University of Thessaly][CSUTH].
It is free to use under MIT license and anyone wanting to can experiment and improve upon our implementation.
You can read more about B+ Trees here.
After making sure you have installed any and all dependencies, you can verify that our implementation is working by executing the following command:
python bplustree.py
If you are planning to also Visualize the tree, give it a quick test by typing:
python bplustree_with_visualizer.py
And that's it!
- Import BPlusTree from
bplustree
. - Initialize BPlusTree
bplustree = BPlusTree(order=5)
- Insert/Delete by calling bplustree.insert(key, value) or bplustree.delete(key) accordingly, example:
bplustree.insert(2, 'Bravo') bplustree.insert(13, 'November') bplustree.delete(2)
- Call bplustree.show_bfs() to print the tree's in console.
- Call bplustree.show_all_data() to print all data stored in the Leafs of the B+ Tree.
- Import GraphableBPlusTree from
bplustree
. - You can use all the methods from above.
- Call bplustree.view_graph() to generate a .png containing the B+ Tree.
Please read CONTRIBUTING.md for details on our code of conduct, and the process for submitting pull requests to us.
Thanks goes to these wonderful people who contribute✨:
Life is not accumulation, it is about contribution. - Stephen Covey
I guess this ain't life. - WckdAwe
- Dimitriadis Vasileios (WckdAwe) -- ( Website | Github )
- Kouskouras Taxiarchis (TheNotoriousCS) -- ( Github )
This project is licensed under the MIT License - see the LICENSE.md file for details.
All the information on this repository is provided in good faith, however we make no representation or warranty of any kind, express or implied, regarding the accuracy, adequacy, validity, reliability, availability or completeness of any information - see the DISCLAIMER.md file for more details.
For security related issues please read SECURITY.md.
Hats off to any person whom contributed to this Project, formally or informally. This couldn't be possible without the assistance of these people.
- Wikipedia
- Javapoint
- Stanford
- B+ Tree implementation by Savarin
- B+ Tree implementation by pschafhalter
- B+ Tree implementation by cburch.com
We have borrowed a-freaking-lot of ideas & code from the above guys to make our stuff kinda work. Make sure to check their individual projects out! ❤️