# williamfiset/deprecated-data-structures

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/williamfiset-deprecated-data-structures).**

2,917 stars · 1,259 forks · Java · MIT

## Links

- GitHub: https://github.com/williamfiset/DEPRECATED-data-structures
- awesome-repositories: https://awesome-repositories.com/repository/williamfiset-deprecated-data-structures.md

## Topics

`balanced-tree` `binarytree` `data-structures` `disjoint-set` `fenwick` `graph` `hash-table` `heap` `java` `linkedlist` `priority-queue` `queue` `segment-tree` `segmenttree` `stack` `suffixarray` `suffixtree` `trie` `union-find` `unionfind`

## Description

This repository provides a collection of fundamental data structures implemented in Java, designed to serve as an educational resource for understanding core computer science concepts. It includes standard implementations of trees, graphs, queues, and heaps, intended to help developers study the internal mechanics and performance characteristics of these structures.

The library emphasizes the use of generics to maintain type safety across different data types and utilizes interface-driven design to ensure consistent method signatures. By building these components from scratch, the project demonstrates common algorithmic patterns, such as recursive tree traversal, pointer-based memory management, and adjacency-list graph representations.

These implementations are intended for use in algorithmic problem solving, technical interview preparation, and general software engineering education. The codebase is structured to provide a clear view of how standard data structures function under the hood, facilitating a deeper understanding of the principles required to write efficient software.

## Tags

### Software Engineering & Architecture

- [Algorithmic Problem Solving](https://awesome-repositories.com/f/software-engineering-architecture/algorithmic-problem-solving.md) — Provides a library of reusable data structure implementations for algorithmic study and problem solving.
- [Priority Heaps](https://awesome-repositories.com/f/software-engineering-architecture/priority-heaps.md) — Includes binary heap implementations for priority-based element ordering.

### Education & Learning Resources

- [Data Structure Implementations](https://awesome-repositories.com/f/education-learning-resources/data-structure-implementations.md) — Features pedagogical implementations of standard data structures to demonstrate core engineering principles.
- [Fundamental Data Structures](https://awesome-repositories.com/f/education-learning-resources/fundamental-data-structures.md) — Provides a comprehensive collection of fundamental data structures implemented from scratch for educational purposes. ([source](https://github.com/williamfiset/deprecated-data-structures#readme))
- [Computer Science Education](https://awesome-repositories.com/f/education-learning-resources/technical-domain-education/computer-science-education.md) — Provides educational content on the internal mechanics and performance characteristics of fundamental data structures.
- [Algorithms and Data Structures](https://awesome-repositories.com/f/education-learning-resources/technical-domain-education/computer-science-education/computer-science-concepts/algorithms-and-data-structures.md) — Contains a collection of fundamental algorithmic data structures including trees, graphs, queues, and heaps.
- [Coding Interview Preparation](https://awesome-repositories.com/f/education-learning-resources/coding-interview-preparation.md) — Serves as a resource for practicing algorithmic implementations commonly required in technical interviews.
- [Software Engineering Curricula](https://awesome-repositories.com/f/education-learning-resources/software-engineering-curricula.md) — Supports software engineering education by demonstrating how data structures function under the hood.
- [Algorithmic Problem Solving](https://awesome-repositories.com/f/education-learning-resources/technical-domain-education/computer-science-education/algorithmic-problem-solving.md) — Offers implementations of data structures to help master computational logic and algorithmic problem solving.
- [Software Engineering Fundamentals](https://awesome-repositories.com/f/education-learning-resources/technical-domain-education/computer-science-education/software-engineering-fundamentals.md) — Teaches software engineering fundamentals through the manual construction of reusable data structures.

### Data & Databases

- [Adjacency Lists](https://awesome-repositories.com/f/data-databases/list-data-structures/adjacency-lists.md) — Provides adjacency list implementations for graph data structures.

### Scientific & Mathematical Computing

- [Recursive Tree Traversal Algorithms](https://awesome-repositories.com/f/scientific-mathematical-computing/recursive-tree-traversal-algorithms.md) — Implements recursive traversal algorithms for navigating hierarchical tree structures.
