Implementing the ADT List with Balanced Binary Trees , specifically AVL binary Trees.
we're interested in making some functions operate with run time complexity of O(logn) WC ,
and as anticipated the run time complexity of other functions would be affected (kind of a trade-off)
Note : project 1 is implemented with Python.
Implementing Hash Tables with Open Addressing (for dealing with collisions) using 4 different probing methods :
Linear Probing, Quadratic Probing, Alternate Quadratic Probing, Double Hash Probing.
we're interested in comparing the performance of these different probing methods in terms of time efficiency,
and we got to really interesting results.
Note : project 2 is implemented with Java.
"Union-Find , the data structure that left a deep impression on me."
Generating random maze using Disjoint-Set (Union-Find) and randomly uniting nodes.
A Disjoint set is represented by 2 nested lists , and each node is represented by (i,j) where i,j are the indecies of row,column (respectively) of the node in the nested list
the project was created after finishing Data-Structures course at Tel-Aviv University, due to the impression Union-Find left on me.
References :
- an Idea in the slides of Union-Find presentation, Data-Structures course, TAU
- Using Disjoint-Set (Union-Find) to Build a Maze Generator
Note : project 3 is implemented with Python.