A Java project implementing custom data structures for storing, searching, and ranking spells.
The project combines hash tables and AVL trees to efficiently organize spells by category and power level.
It includes two main data-structure implementations:
- Double Hash Table
- Hash Table with Linked Lists of AVL Trees
- Custom double hashing implementation
- Collision handling using double hashing
- AVL tree insertion and automatic balancing
- AVL tree rotations
- Spell search by name, category, and power level
- Hash table buckets containing linked lists of AVL trees
- Top-K spell retrieval by power level
- Category-based spell organization
- Manual test suite covering the main operations and collision cases
SpellSimple.java- basic spell representationDoubleHashTable.java- double hashing implementationSpell.java- spell representation with category and power levelAVLTree.java- self-balancing AVL treeHashAVLSpellTable.java- hash table containing linked lists of AVL treesTester.java- manual tests for the implemented data structures
- Java
- Object-Oriented Programming
- Data Structures
- Hash Tables
- AVL Trees
- Linked Lists
Compile the project:
javac *.java
Run the test suite:
java Tester
The test suite checks the main data structures, search operations, AVL behavior, Top-K retrieval, and hash collisions.
Siraj Hoshan
B.Sc. Information Systems Engineering
Ben-Gurion University of the Negev