Here's a great blog and compendium repo about computer science concepts in JavaScript, with posts covering many (if not all) of the concepts covered in this app (in both ES5 and ES6):
- https://github.com/benoitvallon/computer-science-in-javascript/tree/master/data-structures-in-javascript
- http://blog.benoitvallon.com/
Here's a couple of awesome resources for visualizing and interactively exploring the way that sorting algorithms and data structures work. Both sites have their strengths and weaknesses, and cover just about every topic imaginable between them. I think you'll find them both immensely helpful!
Here's a pretty awesome Big-O notation cheat sheet to help you learn the ropes! Know thy complexity!
- https://learn.freecodecamp.org/coding-interview-prep/algorithms/implement-quick-sort/ (interactive challenge)
- https://www.nczonline.net/blog/2012/11/27/computer-science-in-javascript-quicksort/
- https://guide.freecodecamp.org/algorithms/sorting-algorithms/quick-sort
- https://en.wikipedia.org/wiki/Quicksort
- https://www.youtube.com/watch?v=MZaf_9IZCrc
- http://www.geeksforgeeks.org/quick-sort/
- https://www.cs.usfca.edu/~galles/visualization/ComparisonSort.html (excellent visualization!)
- https://www.nczonline.net/blog/2012/10/02/computer-science-and-javascript-merge-sort/
- https://learn.freecodecamp.org/coding-interview-prep/algorithms/implement-merge-sort/ (interactive challenge)
- https://guide.freecodecamp.org/algorithms/sorting-algorithms/merge-sort/
- https://en.wikipedia.org/wiki/Merge_sort
- http://www.geeksforgeeks.org/merge-sort/
- https://www.cs.usfca.edu/~galles/visualization/ComparisonSort.html (excellent visualization!)
- http://www.geeksforgeeks.org/bubble-sort/
- https://www.nczonline.net/blog/2009/05/26/computer-science-in-javascript-bubble-sort/
- https://learn.freecodecamp.org/coding-interview-prep/algorithms/implement-bubble-sort (interactive challenge)
- https://en.wikipedia.org/wiki/Bubble_sort
- https://guide.freecodecamp.org/algorithms/sorting-algorithms/bubble-sort/
- https://www.cs.usfca.edu/~galles/visualization/ComparisonSort.html (excellent visualization!)
- http://www.geeksforgeeks.org/insertion-sort/
- https://www.nczonline.net/blog/2012/09/17/computer-science-in-javascript-insertion-sort/
- https://learn.freecodecamp.org/coding-interview-prep/algorithms/implement-insertion-sort (interactive challenge)
- https://en.wikipedia.org/wiki/Insertion_sort
- https://guide.freecodecamp.org/algorithms/sorting-algorithms/insertion-sort/
- https://www.cs.usfca.edu/~galles/visualization/ComparisonSort.html (excellent visualization!)
- http://www.geeksforgeeks.org/selection-sort/
- https://www.nczonline.net/blog/2009/09/08/computer-science-in-javascript-selection-sort/
- https://learn.freecodecamp.org/coding-interview-prep/algorithms/implement-selection-sort (interactive challenge)
- https://en.wikipedia.org/wiki/Selection_sort
- https://guide.freecodecamp.org/algorithms/sorting-algorithms/selection-sort/
- https://www.cs.usfca.edu/~galles/visualization/ComparisonSort.html (excellent visualization!)
- http://www.geeksforgeeks.org/heap-sort/
- https://en.wikipedia.org/wiki/Heapsort
- https://guide.freecodecamp.org/algorithms/sorting-algorithms/heap-sort/
- https://www.hackerearth.com/practice/algorithms/sorting/heap-sort/tutorial/ (excellent visualization)
- https://www.cs.usfca.edu/~galles/visualization/HeapSort.html (even better visualization!)
- http://www.geeksforgeeks.org/bucket-sort-2/
- https://en.wikipedia.org/wiki/Bucket_sort
- https://initjs.org/bucket-sort-in-javascript-dc040b8f0058
- https://www.cs.usfca.edu/~galles/visualization/BucketSort.html (excellent visualization)
- http://www.geeksforgeeks.org/stack-data-structure/
- http://www.geeksforgeeks.org/implementation-stack-javascript/
- https://learn.freecodecamp.org/coding-interview-prep/data-structures/create-a-stack-class (interactive challenge)
- https://en.wikipedia.org/wiki/Stack_(abstract_data_type)
- https://guide.freecodecamp.org/computer-science/data-structures/stacks
- https://www.cs.usfca.edu/~galles/visualization/StackLL.html (interactive visualization)
- http://www.geeksforgeeks.org/queue-data-structure/
- http://www.geeksforgeeks.org/implementation-queue-javascript/
- https://learn.freecodecamp.org/coding-interview-prep/data-structures/create-a-queue-class (interactive challenge)
- https://en.wikipedia.org/wiki/Queue_(abstract_data_type)
- https://guide.freecodecamp.org/computer-science/data-structures/queues
- https://www.cs.usfca.edu/~galles/visualization/QueueLL.html (interactive visualization)
- http://www.geeksforgeeks.org/priority-queue-set-1-introduction/
- http://www.geeksforgeeks.org/implementation-priority-queue-javascript/
- https://learn.freecodecamp.org/coding-interview-prep/data-structures/create-a-priority-queue-class (interactive challenge)
- https://en.wikipedia.org/wiki/Priority_queue
- http://www.geeksforgeeks.org/data-structures/linked-list/
- http://www.geeksforgeeks.org/implementation-linkedlist-javascript/
- https://learn.freecodecamp.org/coding-interview-prep/data-structures/work-with-nodes-in-a-linked-list (interactive challenge series)
- https://en.wikipedia.org/wiki/Linked_list
- https://guide.freecodecamp.org/computer-science/data-structures/linked-lists
- https://en.wikipedia.org/wiki/Doubly_linked_list
- http://www.geeksforgeeks.org/data-structures/linked-list/#doublyLinkedList/
- https://www.nczonline.net/blog/2009/04/21/computer-science-in-javascript-doubly-linked-lists/
- https://learn.freecodecamp.org/coding-interview-prep/data-structures/create-a-doubly-linked-list (interactive challenge series)
- https://www.geeksforgeeks.org/doubly-circular-linked-list-set-1-introduction-and-insertion/
- https://www.geeksforgeeks.org/doubly-circular-linked-list-set-2-deletion/
- https://en.wikipedia.org/wiki/Doubly_linked_list#Circular_doubly_linked_lists/
- https://medium.com/basecs/taking-hash-tables-off-the-shelf-139cbf4752f0
- https://medium.com/basecs/hashing-out-hash-functions-ea5dd8beb4dd
- http://www.geeksforgeeks.org/hashing-data-structure/
- https://learn.freecodecamp.org/coding-interview-prep/data-structures/create-a-hash-table (interactive challenge)
- https://en.wikipedia.org/wiki/Hash_table
- https://guide.freecodecamp.org/computer-science/data-structures/hash-tables
- https://www.cs.usfca.edu/~galles/visualization/OpenHash.html (interactive visualization)
- https://www.cs.usfca.edu/~galles/visualization/ClosedHash.html (interactive visualization)
- https://www.cs.usfca.edu/~galles/visualization/ClosedHashBucket.html (interactive visualization)
- http://www.geeksforgeeks.org/binary-search-tree-data-structure/
- http://www.geeksforgeeks.org/implementation-binary-search-tree-javascript/
- https://learn.freecodecamp.org/coding-interview-prep/data-structures/add-a-new-element-to-a-binary-search-tree (interactive challenges)
- https://en.wikipedia.org/wiki/Binary_search_tree
- https://guide.freecodecamp.org/algorithms/binary-search-trees
- https://www.nczonline.net/blog/2009/06/09/computer-science-in-javascript-binary-search-tree-part-1/
- https://www.nczonline.net/blog/2009/06/16/computer-science-in-javascript-binary-search-tree-part-2/
- https://www.cs.usfca.edu/~galles/visualization/BST.html (interactive visualization)
- http://www.geeksforgeeks.org/heap-data-structure/
- https://learn.freecodecamp.org/coding-interview-prep/data-structures/insert-an-element-into-a-max-heap (interactive challenges)
- https://en.wikipedia.org/wiki/Heap_(data_structure)
- https://www.cs.usfca.edu/~galles/visualization/Heap.html (interactive visualization)
http://www.geeksforgeeks.org/graph-and-its-representations/ http://www.geeksforgeeks.org/implementation-graph-javascript/ http://blog.benoitvallon.com/data-structures-in-javascript/the-graph-data-structure/ https://en.wikipedia.org/wiki/Adjacency_list https://www.cs.usfca.edu/~galles/visualization/ConnectedComponent.html (interactive visualization) https://visualgo.net/en/dfsbfs (SUPER interactive graph creation & traversal visualization)
- https://www.freecodecamp.org/challenges/sum-all-primes (interactive challenge)
- https://guide.freecodecamp.org/certificates/sum-all-primes
- https://www.codetuts.tech/flatten-deep-nested-array-object/
- http://blog.benoitvallon.com/tips/flattening-arrays-in-javascript/