@@ -32,7 +32,9 @@ You can check out the [dsa.js book](https://gum.co/dsajs) that goes deeper into
3232
3333<a href =" https://gum.co/dsajs " ><img src =" https://user-images.githubusercontent.com/418605/55248546-60ebad80-5220-11e9-8cb5-85923f44e196.png " height =" 400px " alt =" dsajs algorithms javascript book " ></a >
3434
35+ <!--
3536WARNING: Although you can find the [book text on this repo](https://github.com/amejiarosario/dsa.js/blob/master/book/book.adoc), there are some things that doesn't work well with Github's Asciidoc unfortunately. For instance rendering Graphviz diagrams, internal link references, embedding code into docs and so on. For better reading experience and nicer presentation you can get the [PDF format here](https://gum.co/dsajs).
37+ -->
3638
3739## Data Structures
3840
@@ -42,24 +44,30 @@ We are covering the following data structures.
4244
4345### Linear Data Structures
4446
45- 1 . ** Arrays** : Built-in in most languages so not implemented here.
46- [ Post] ( https://adrianmejia.com/blog/2018/04/28/data-structures-time-complexity-for-beginners-arrays-hashmaps-linked-lists-stacks-queues-tutorial/#Array ) .
47+ 1 . ** Arrays** : Built-in in most languages so not implemented here. [ Array Time complexity ] ( https://github.com/amejiarosario/dsa.js/blob/master/book/chapters/array.adoc#array-complexity )
48+ <!-- [Post](https://adrianmejia.com/blog/2018/04/28/data-structures-time-complexity-for-beginners-arrays-hashmaps-linked-lists-stacks-queues-tutorial/#Array). -->
4749
48502 . ** Linked Lists** : each data node has a link to the next (and
4951 previous).
5052 [ Code] ( https://github.com/amejiarosario/dsa.js/blob/master/src/data-structures/linked-lists/linked-list.js )
5153 |
52- [ Post] ( https://adrianmejia.com/blog/2018/04/28/data-structures-time-complexity-for-beginners-arrays-hashmaps-linked-lists-stacks-queues-tutorial/#Linked-Lists ) .
54+ [ Linked List Time Complexity] ( https://github.com/amejiarosario/dsa.js/blob/master/book/chapters/linked-list.adoc#linked-list-complexity-vs-array-complexity )
55+ <!-- [Post](https://adrianmejia.com/blog/2018/04/28/data-structures-time-complexity-for-beginners-arrays-hashmaps-linked-lists-stacks-queues-tutorial/#Linked-Lists) -->
56+ .
5357
54583 . ** Queue** : data flows in a "first-in, first-out" (FIFO) manner.
5559 [ Code] ( https://github.com/amejiarosario/dsa.js/blob/master/src/data-structures/queues/queue.js )
5660 |
57- [ Post] ( https://adrianmejia.com/blog/2018/04/28/data-structures-time-complexity-for-beginners-arrays-hashmaps-linked-lists-stacks-queues-tutorial/#Queues )
61+ [ Queue Time Complexity] ( https://github.com/amejiarosario/dsa.js/blob/master/book/chapters/queue.adoc#queue-complexity )
62+ <!-- [Post](https://adrianmejia.com/blog/2018/04/28/data-structures-time-complexity-for-beginners-arrays-hashmaps-linked-lists-stacks-queues-tutorial/#Queues) -->
63+ .
5864
59654 . ** Stacks** : data flows in a "last-in, first-out" (LIFO) manner.
6066 [ Code] ( https://github.com/amejiarosario/dsa.js/blob/master/src/data-structures/stacks/stack.js )
6167 |
62- [ Post] ( https://adrianmejia.com/blog/2018/04/28/data-structures-time-complexity-for-beginners-arrays-hashmaps-linked-lists-stacks-queues-tutorial/#Stacks ) .
68+ [ Stack Time Complexity] ( https://github.com/amejiarosario/dsa.js/blob/master/book/chapters/stack.adoc#stack-complexity )
69+ <!-- [Post](https://adrianmejia.com/blog/2018/04/28/data-structures-time-complexity-for-beginners-arrays-hashmaps-linked-lists-stacks-queues-tutorial/#Stacks) -->
70+ .
6371
6472### Non-Linear Data Structures
6573
@@ -68,24 +76,31 @@ We are covering the following data structures.
6876 graph not a tree.
6977 [ Code] ( https://github.com/amejiarosario/algorithms.js/tree/master/src/data-structures/trees )
7078 |
71- [ Post] ( https://adrianmejia.com/blog/2018/06/11/data-structures-for-beginners-trees-binary-search-tree-tutorial/ )
79+ [ Docs] ( https://github.com/amejiarosario/dsa.js/blob/master/book/chapters/tree.adoc )
80+ <!-- [Post](https://adrianmejia.com/blog/2018/06/11/data-structures-for-beginners-trees-binary-search-tree-tutorial/) -->
7281
7382 1 . ** Binary Trees** : same as tree but only can have two children at
7483 most.
7584 [ Code] ( https://github.com/amejiarosario/algorithms.js/tree/master/src/data-structures/trees )
7685 |
77- [ Post] ( https://adrianmejia.com/blog/2018/06/11/data-structures-for-beginners-trees-binary-search-tree-tutorial/#Binary-Trees )
86+ [ Docs] ( https://github.com/amejiarosario/dsa.js/blob/master/book/chapters/tree.adoc#binary-tree )
87+ <!-- [Post](https://adrianmejia.com/blog/2018/06/11/data-structures-for-beginners-trees-binary-search-tree-tutorial/#Binary-Trees) -->
7888
7989 2 . ** Binary Search Trees** (BST): same as binary tree, but the
8090 nodes value keep this order ` left < parent < rigth ` .
8191 [ Code] ( https://github.com/amejiarosario/algorithms.js/blob/master/src/data-structures/trees/binary-search-tree.js )
8292 |
83- [ Post] ( https://adrianmejia.com/blog/2018/06/11/data-structures-for-beginners-trees-binary-search-tree-tutorial/#Binary-Search-Tree-BST )
93+ [ BST Time complexity] ( https://github.com/amejiarosario/dsa.js/blob/master/book/chapters/tree--binary-search-tree.adoc#tree-complexity )
94+ <!-- [Post](https://adrianmejia.com/blog/2018/06/11/data-structures-for-beginners-trees-binary-search-tree-tutorial/#Binary-Search-Tree-BST) -->
8495
8596 3 . ** AVL Trees** : Self-balanced BST to maximize look up time.
8697 [ Code] ( https://github.com/amejiarosario/algorithms.js/blob/master/src/data-structures/trees/avl-tree.js )
8798 |
88- [ Post] ( https://adrianmejia.com/blog/2018/07/16/self-balanced-binary-search-trees-with-avl-tree-data-structure-for-beginners/ )
99+ [ AVL Tree docs] ( https://github.com/amejiarosario/dsa.js/blob/master/book/chapters/tree--avl.adoc )
100+ |
101+ [ Self-balancing & tree rotations docs] ( https://github.com/amejiarosario/dsa.js/blob/master/book/chapters/tree--self-balancing-rotations.adoc )
102+ <!-- [Post](https://adrianmejia.com/blog/2018/07/16/self-balanced-binary-search-trees-with-avl-tree-data-structure-for-beginners/) -->
103+ .
89104
90105 4 . ** Red-Black Trees** : Self-balanced BST more loose than AVL to
91106 maximize insertion speed.
@@ -96,53 +111,79 @@ We are covering the following data structures.
96111 1 . ** Hash Maps** : implements map using a hash function.
97112 [ Code] ( https://github.com/amejiarosario/algorithms.js/blob/master/src/data-structures/hash-maps/hashmap.js )
98113 |
99- [ Post] ( https://adrianmejia.com/blog/2018/04/28/data-structures-time-complexity-for-beginners-arrays-hashmaps-linked-lists-stacks-queues-tutorial/#HashMaps )
114+ [ HashMap time complexity] ( https://github.com/amejiarosario/dsa.js/blob/master/book/chapters/map-hashmap.adoc#hashmap-time-complexity )
115+ <!-- [Docs](https://adrianmejia.com/blog/2018/04/28/data-structures-time-complexity-for-beginners-arrays-hashmaps-linked-lists-stacks-queues-tutorial/#HashMaps) -->
116+ <!-- [Post](https://adrianmejia.com/blog/2018/04/28/data-structures-time-complexity-for-beginners-arrays-hashmaps-linked-lists-stacks-queues-tutorial/#HashMaps) -->
100117
101118 2 . ** Tree Maps** : implement map using a self-balanced BST.
102119 [ Code] ( https://github.com/amejiarosario/dsa.js/blob/master/src/data-structures/maps/tree-maps/tree-map.js )
120+ |
121+ [ TreeMap docs] ( https://github.com/amejiarosario/dsa.js/blob/master/book/chapters/map-treemap.adoc )
122+ |
123+ [ TreeMap time complexity] ( https://github.com/amejiarosario/dsa.js/blob/master/book/chapters/map-hashmap-vs-treemap.adoc#treemap-time-complexity-vs-hashmap )
124+ .
103125
1041263 . ** Graphs** : data ** nodes** that can have a connection or ** edge** to
105127 zero or more adjacent nodes. Unlike trees, nodes can have multiple
106128 parents, loops.
107129 [ Code] ( https://github.com/amejiarosario/algorithms.js/blob/master/src/data-structures/graphs/graph.js )
108130 |
109- [ Post] ( https://adrianmejia.com/blog/2018/05/14/data-structures-for-beginners-graphs-time-complexity-tutorial/ )
131+ [ Graph Time Complexity] ( https://github.com/amejiarosario/dsa.js/blob/master/book/chapters/graph.adoc#graph-complexity )
132+ <!-- [Post](https://adrianmejia.com/blog/2018/05/14/data-structures-for-beginners-graphs-time-complexity-tutorial/) -->
110133
111134## Algorithms
112135
113136- Sorting algorithms
114137
115138 - Bubble Sort.
116139 [ Code] ( https://github.com/amejiarosario/dsa.js/blob/master/src/algorithms/sorting/bubble-sort.js )
140+ |
141+ [ Docs] ( https://github.com/amejiarosario/dsa.js/blob/master/book/chapters/bubble-sort.adoc )
117142
118143 - Insertion Sort.
119144 [ Code] ( https://github.com/amejiarosario/dsa.js/blob/master/src/algorithms/sorting/insertion-sort.js )
145+ |
146+ [ Docs] ( https://github.com/amejiarosario/dsa.js/blob/master/book/chapters/insertion-sort.adoc )
120147
121148 - Selection Sort.
122149 [ Code] ( https://github.com/amejiarosario/dsa.js/blob/master/src/algorithms/sorting/selection-sort.js )
150+ |
151+ [ Docs] ( https://github.com/amejiarosario/dsa.js/blob/master/book/chapters/selection-sort.adoc )
123152
124153 - Merge Sort.
125154 [ Code] ( https://github.com/amejiarosario/dsa.js/blob/master/src/algorithms/sorting/merge-sort.js )
155+ |
156+ [ Docs] ( https://github.com/amejiarosario/dsa.js/blob/master/book/chapters/merge-sort.adoc )
126157
127158 - Quick sort.
128159 [ Code] ( https://github.com/amejiarosario/dsa.js/blob/master/src/algorithms/sorting/quick-sort.js )
160+ |
161+ [ Docs] ( https://github.com/amejiarosario/dsa.js/blob/master/book/chapters/quick-sort.adoc )
129162
130163- Greedy Algorithms
131164
132165 - Fractional Knapsack Problem.
133166 [ Code] ( https://github.com/amejiarosario/dsa.js/blob/master/src/algorithms/knapsack-fractional.js )
167+ |
168+ [ Docs] ( https://github.com/amejiarosario/dsa.js/blob/master/book/chapters/greedy-algorithms--knapsack-problem.adoc )
134169
135170- Divide and Conquer
136171
137172 - Fibonacci Numbers.
138173 [ Code] ( https://github.com/amejiarosario/dsa.js/blob/master/src/algorithms/fibonacci-recursive.js )
174+ |
175+ [ Docs] ( https://github.com/amejiarosario/dsa.js/blob/master/book/chapters/divide-and-conquer--fibonacci.adoc )
139176
140177- Dynamic Programming
141178
142179 - Fibonacci with memoization.
143180 [ Code] ( https://github.com/amejiarosario/dsa.js/blob/master/src/algorithms/fibanacci-dynamic-programming.js )
181+ |
182+ [ Docs] ( https://github.com/amejiarosario/dsa.js/blob/master/book/chapters/dynamic-programming--knapsack-problem.adoc )
144183
145184- Backtracking algorithms
146185
147186 - Word permutations.
148187 [ Code] ( https://github.com/amejiarosario/dsa.js/blob/master/src/algorithms/permutations-backtracking.js )
188+ |
189+ [ Docs] ( https://github.com/amejiarosario/dsa.js/blob/master/book/chapters/backtracking.adoc )
0 commit comments