forked from williamfiset/DEPRECATED-data-structures
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
1 parent
8515692
commit a9706ab
Showing
1 changed file
with
2 additions
and
54 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,59 +1,7 @@ | ||
[![Travis](https://img.shields.io/travis/williamfiset/data-structures.svg)](https://travis-ci.org/williamfiset/data-structures) [![License: MIT](https://img.shields.io/github/license/mashape/apistatus.svg)](https://opensource.org/licenses/MIT) | ||
# Project status | ||
|
||
# The data structures project | ||
|
||
Data structures are amongst the most fundamental ingredients in the recipe for efficient algorithms and good software design. Knowledge of how to create and design excellent data structures is an essential skill required in becoming an exemplary programmer. The goal of this repository is to provide a complete and thorough explanation of the most common data structures. | ||
|
||
# Data Structures | ||
|
||
* [:movie_camera:](https://www.youtube.com/watch?v=q4fnJZr8ztY)[Balanced Trees](https://github.com/williamfiset/data-structures/tree/master/com/williamfiset/datastructures/balancedtree) | ||
* [Avl Tree (recursive)](https://github.com/williamfiset/data-structures/blob/master/com/williamfiset/datastructures/balancedtree/AVLTreeRecursive.java) | ||
* [Avl Tree (recursive, mildly optimized)](https://github.com/williamfiset/data-structures/blob/master/com/williamfiset/datastructures/balancedtree/AVLTreeRecursiveOptimized.java) | ||
* [Red Black Tree(recursive)](https://github.com/williamfiset/data-structures/blob/master/com/williamfiset/datastructures/balancedtree/RedBlackTree.java) | ||
* [:movie_camera:](https://www.youtube.com/watch?v=JfSdGQdAzq8)[Binary Search Tree](https://github.com/williamfiset/data-structures/blob/master/com/williamfiset/datastructures/binarysearchtree/BinarySearchTree.java) | ||
* [Splay Tree](https://github.com/williamfiset/data-structures/blob/master/com/williamfiset/datastructures/binarysearchtree/SplayTree.java) | ||
* [Bloom Filter](https://github.com/williamfiset/data-structures/tree/master/com/williamfiset/datastructures/bloomfilter) | ||
* [:movie_camera:](https://www.youtube.com/watch?v=PEnFFiQe1pM)[Dynamic Array](https://github.com/williamfiset/data-structures/tree/master/com/williamfiset/datastructures/dynamicarray) | ||
* [Dynamic array (integer only, fast)](https://github.com/williamfiset/data-structures/blob/master/com/williamfiset/datastructures/dynamicarray/IntArray.java) | ||
* [Dynamic array (generic)](https://github.com/williamfiset/data-structures/blob/master/com/williamfiset/datastructures/dynamicarray/DynamicArray.java) | ||
* [:movie_camera:](https://www.youtube.com/watch?v=RgITNht_f4Q)[Fenwick Tree](https://github.com/williamfiset/data-structures/tree/master/com/williamfiset/datastructures/fenwicktree) | ||
* [Fenwick Tree (range query, point updates)](https://github.com/williamfiset/data-structures/blob/master/com/williamfiset/datastructures/fenwicktree/FenwickTreeRangeQueryPointUpdate.java) | ||
* [Fenwick Tree (range update, point query)](https://github.com/williamfiset/data-structures/blob/master/com/williamfiset/datastructures/fenwicktree/FenwickTreeRangeUpdatePointQuery.java) | ||
* [Set](https://github.com/williamfiset/data-structures/tree/master/com/williamfiset/datastructures/set) | ||
* [:movie_camera:](https://www.youtube.com/watch?v=2E54GqF0H4s)[Hashtable](https://github.com/williamfiset/data-structures/tree/master/com/williamfiset/datastructures/hashtable) | ||
* [Hashtable (double hashing)](https://github.com/williamfiset/data-structures/blob/master/com/williamfiset/datastructures/hashtable/HashTableDoubleHashing.java) | ||
* [Hashtable (linear probing)](https://github.com/williamfiset/data-structures/blob/master/com/williamfiset/datastructures/hashtable/HashTableLinearProbing.java) | ||
* [Hashtable (quadratic probing)](https://github.com/williamfiset/data-structures/blob/master/com/williamfiset/datastructures/hashtable/HashTableQuadraticProbing.java) | ||
* [Hashtable (separate chaining)](https://github.com/williamfiset/data-structures/blob/master/com/williamfiset/datastructures/hashtable/HashTableSeperateChaining.java) | ||
* [:movie_camera:](https://www.youtube.com/watch?v=-Yn5DU0_-lw)[Linked List](https://github.com/williamfiset/data-structures/blob/master/com/williamfiset/datastructures/linkedlist/DoublyLinkedList.java) | ||
* [:movie_camera:](https://www.youtube.com/watch?v=wptevk0bshY)[Priority Queue](https://github.com/williamfiset/data-structures/tree/master/com/williamfiset/datastructures/priorityqueue) | ||
* [Min Binary Heap](https://github.com/williamfiset/data-structures/blob/master/com/williamfiset/datastructures/priorityqueue/BinaryHeap.java) | ||
* [Min Indexed Binary Heap (sorted key-value pairs, similar to hash-table)](https://github.com/williamfiset/data-structures/blob/master/com/williamfiset/datastructures/priorityqueue/MinIndexedBinaryHeap.java) | ||
* [Min D-Heap](https://github.com/williamfiset/data-structures/blob/master/com/williamfiset/datastructures/priorityqueue/MinDHeap.java) | ||
* [:movie_camera:](https://www.youtube.com/watch?v=DT8xZ0Uf8wo)[Min Indexed D-Heap (sorted key-value pairs, similar to hash-table)](https://github.com/williamfiset/data-structures/blob/master/com/williamfiset/datastructures/priorityqueue/MinIndexedDHeap.java) | ||
* [Quad Tree [WIP]](https://github.com/williamfiset/data-structures/blob/master/com/williamfiset/datastructures/quadtree/QuadTree.java) | ||
* [:movie_camera:](https://www.youtube.com/watch?v=KxzhEQ-zpDc)[Queue](https://github.com/williamfiset/data-structures/tree/master/com/williamfiset/datastructures/queue) | ||
* [Queue (integer only, fixed size, fast)](https://github.com/williamfiset/data-structures/blob/master/com/williamfiset/datastructures/queue/IntQueue.java) | ||
* [Queue (linked list, generic)](https://github.com/williamfiset/data-structures/blob/master/com/williamfiset/datastructures/queue/Queue.java) | ||
* [Segment Tree](https://github.com/williamfiset/data-structures/tree/master/com/williamfiset/datastructures/segmenttree) | ||
* [Segment tree (array based, compact)](https://github.com/williamfiset/data-structures/blob/master/com/williamfiset/datastructures/segmenttree/CompactSegmentTree.java) | ||
* [Segment tree (pointer implementation)](https://github.com/williamfiset/data-structures/blob/master/com/williamfiset/datastructures/segmenttree/Node.java) | ||
* [Skip List [UNTESTED]](https://github.com/williamfiset/data-structures/blob/master/com/williamfiset/datastructures/skiplist/SkipList.java) | ||
* [:movie_camera:](https://www.youtube.com/watch?v=L3ud3rXpIxA)[Stack](https://github.com/williamfiset/data-structures/tree/master/com/williamfiset/datastructures/stack) | ||
* [Stack (integer only, fixed size, fast)](https://github.com/williamfiset/data-structures/blob/master/com/williamfiset/datastructures/stack/IntStack.java) | ||
* [Stack (linked list, generic)](https://github.com/williamfiset/data-structures/blob/master/com/williamfiset/datastructures/stack/Stack.java) | ||
* [:movie_camera:](https://www.youtube.com/watch?v=zqKlL3ZpTqs)[Suffix Array](https://github.com/williamfiset/data-structures/tree/master/com/williamfiset/datastructures/suffixarray) | ||
* [Suffix Array (O(n²logn) construction)](https://github.com/williamfiset/data-structures/blob/master/com/williamfiset/datastructures/suffixarray/SuffixArraySlow.java) | ||
* [Suffix Array (O(nlog²(n)) construction)](https://github.com/williamfiset/data-structures/blob/master/com/williamfiset/datastructures/suffixarray/SuffixArrayMed.java) | ||
* [Suffix Array (O(nlog(n)) construction)](https://github.com/williamfiset/data-structures/blob/master/com/williamfiset/datastructures/suffixarray/SuffixArrayFast.java) | ||
* [Trie](https://github.com/williamfiset/data-structures/blob/master/com/williamfiset/datastructures/trie/Trie.java) | ||
* [:movie_camera:](https://www.youtube.com/watch?v=ibjEGG7ylHk)[Union Find](https://github.com/williamfiset/data-structures/blob/master/com/williamfiset/datastructures/unionfind/UnionFind.java) | ||
|
||
# Contributing | ||
|
||
This repository is contribution friendly :smiley:. If you're a data structures enthusiast (like me!) and want to add or improve a data structure your contribution is welcome! Please be sure to checkout the [Wiki](https://github.com/williamfiset/data-structures/wiki) for instructions. | ||
This data-structures repository was moved to [https://github.com/williamfiset/Algorithms](https://github.com/williamfiset/Algorithms) | ||
|
||
# License | ||
|
||
This repository is released under the [MIT license](https://opensource.org/licenses/MIT). In short, this means you are free to use this software in any personal, open-source or commercial projects. Attribution is optional but appreciated. | ||
|