Skip to content

yuvalsadot/Advanced-data-structures

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

5 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Advanced Data Structures Project πŸ“š

A collection of advanced data structure implementations in Java, including an extended Skip List, various hashing functions, hash tables, and a custom-designed data structure.

πŸ“š Project Overview

This project contains several major parts:

  • Indexable Skip List: An extension of the classic skip list supporting efficient rank and select operations.
  • Hashing Functions: Modular Hashing and Multiplicative Shifting Hashing implementations.
  • Hash Tables: Separate chaining and open addressing (probing) methods for collision resolution.
  • Custom Data Structure: Designed to support insert, delete, contains, rank, select, and range queries under specific complexity constraints.

πŸš€ Technologies Used

  • Java 17
  • Data Structures and Algorithms
  • Probability-based data structures
  • Hashing theory
  • Runtime and space optimization

πŸ› οΈ How to Build and Run

Prerequisites

  • Java 17 installed
  • A terminal/command line tool

Compilation

Navigate to the src/ directory and compile all Java files:

javac *.java

This will compile all classes at once.

πŸš€ How to Use

This project is a collection of Java classes for data structures and hashing experiments. It does not include a default Main class to run directly. You can:

  • Write your own test classes that use these classes.
  • Use the provided utilities (e.g., HashingExperimentUtils) to run experiments.
  • Integrate these structures into other Java projects. If you want a simple test yourself, you can write a new TestMain.java with a main() function that creates and tests these classes.

🧠 Key Features

  • Skip List with probabilistic height generation and fast search/update.
  • Hash tables with different collision strategies and performance analysis.
  • Efficient and scalable data structure design.
  • Emphasis on modular and clean code architecture.

✨ Skills Demonstrated

  • Advanced Data Structures Implementation
  • Algorithm Design and Analysis
  • Java Object-Oriented Programming
  • Hashing Techniques
  • Space-Time Tradeoff Optimization

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages