Skip to content

Repository files navigation

Spells Data Structures System

A Java project implementing custom data structures for storing, searching, and ranking spells.

Overview

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

Features

  • 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

Main Classes

  • SpellSimple.java - basic spell representation
  • DoubleHashTable.java - double hashing implementation
  • Spell.java - spell representation with category and power level
  • AVLTree.java - self-balancing AVL tree
  • HashAVLSpellTable.java - hash table containing linked lists of AVL trees
  • Tester.java - manual tests for the implemented data structures

Technologies

  • Java
  • Object-Oriented Programming
  • Data Structures
  • Hash Tables
  • AVL Trees
  • Linked Lists

How to Run

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.

Author

Siraj Hoshan
B.Sc. Information Systems Engineering
Ben-Gurion University of the Negev

About

Java data structures project implementing double hashing, AVL trees, collision handling, and Top-K spell retrieval.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages