@@ -32,7 +32,9 @@ You can check out the [dsa.js book](https://gum.co/dsajs) that goes deeper into
32
32
33
33
<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 >
34
34
35
+
36
38
37
39
## Data Structures
38
40
@@ -42,24 +44,30 @@ We are covering the following data structures.
42
44
43
45
### Linear Data Structures
44
46
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
+
47
49
48
50
2 . ** Linked Lists** : each data node has a link to the next (and
49
51
previous).
50
52
[ Code] ( https://github.com/amejiarosario/dsa.js/blob/master/src/data-structures/linked-lists/linked-list.js )
51
53
|
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
+
56
+ .
53
57
54
58
3 . ** Queue** : data flows in a "first-in, first-out" (FIFO) manner.
55
59
[ Code] ( https://github.com/amejiarosario/dsa.js/blob/master/src/data-structures/queues/queue.js )
56
60
|
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
+
63
+ .
58
64
59
65
4 . ** Stacks** : data flows in a "last-in, first-out" (LIFO) manner.
60
66
[ Code] ( https://github.com/amejiarosario/dsa.js/blob/master/src/data-structures/stacks/stack.js )
61
67
|
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
+
70
+ .
63
71
64
72
### Non-Linear Data Structures
65
73
@@ -68,24 +76,31 @@ We are covering the following data structures.
68
76
graph not a tree.
69
77
[ Code] ( https://github.com/amejiarosario/algorithms.js/tree/master/src/data-structures/trees )
70
78
|
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
+
72
81
73
82
1 . ** Binary Trees** : same as tree but only can have two children at
74
83
most.
75
84
[ Code] ( https://github.com/amejiarosario/algorithms.js/tree/master/src/data-structures/trees )
76
85
|
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
+
78
88
79
89
2 . ** Binary Search Trees** (BST): same as binary tree, but the
80
90
nodes value keep this order ` left < parent < rigth ` .
81
91
[ Code] ( https://github.com/amejiarosario/algorithms.js/blob/master/src/data-structures/trees/binary-search-tree.js )
82
92
|
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
+
84
95
85
96
3 . ** AVL Trees** : Self-balanced BST to maximize look up time.
86
97
[ Code] ( https://github.com/amejiarosario/algorithms.js/blob/master/src/data-structures/trees/avl-tree.js )
87
98
|
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
+
103
+ .
89
104
90
105
4 . ** Red-Black Trees** : Self-balanced BST more loose than AVL to
91
106
maximize insertion speed.
@@ -96,53 +111,79 @@ We are covering the following data structures.
96
111
1 . ** Hash Maps** : implements map using a hash function.
97
112
[ Code] ( https://github.com/amejiarosario/algorithms.js/blob/master/src/data-structures/hash-maps/hashmap.js )
98
113
|
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
+
116
+
100
117
101
118
2 . ** Tree Maps** : implement map using a self-balanced BST.
102
119
[ 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
+ .
103
125
104
126
3 . ** Graphs** : data ** nodes** that can have a connection or ** edge** to
105
127
zero or more adjacent nodes. Unlike trees, nodes can have multiple
106
128
parents, loops.
107
129
[ Code] ( https://github.com/amejiarosario/algorithms.js/blob/master/src/data-structures/graphs/graph.js )
108
130
|
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
+
110
133
111
134
## Algorithms
112
135
113
136
- Sorting algorithms
114
137
115
138
- Bubble Sort.
116
139
[ 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 )
117
142
118
143
- Insertion Sort.
119
144
[ 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 )
120
147
121
148
- Selection Sort.
122
149
[ 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 )
123
152
124
153
- Merge Sort.
125
154
[ 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 )
126
157
127
158
- Quick sort.
128
159
[ 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 )
129
162
130
163
- Greedy Algorithms
131
164
132
165
- Fractional Knapsack Problem.
133
166
[ 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 )
134
169
135
170
- Divide and Conquer
136
171
137
172
- Fibonacci Numbers.
138
173
[ 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 )
139
176
140
177
- Dynamic Programming
141
178
142
179
- Fibonacci with memoization.
143
180
[ 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 )
144
183
145
184
- Backtracking algorithms
146
185
147
186
- Word permutations.
148
187
[ 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