Skip to content

Commit

Permalink
Update README.md
Browse files Browse the repository at this point in the history
  • Loading branch information
williamfiset authored Jun 1, 2019
1 parent 8515692 commit a9706ab
Showing 1 changed file with 2 additions and 54 deletions.
56 changes: 2 additions & 54 deletions README.md
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.

0 comments on commit a9706ab

Please sign in to comment.