|
@@ -342,25 +342,35 @@ Notes:
|
|
|
- traversal
|
|
|
- manipulation algorithms
|
|
|
- BFS (breadth-first search)
|
|
|
+ - MIT: https://www.youtube.com/watch?v=s-CYnVz-uh4&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb&index=13
|
|
|
+ - level order (BFS, using queue)
|
|
|
+ time complexity: O(n)
|
|
|
+ space complexity: best: O(1), worst: O(n/2)=O(n)
|
|
|
- DFS (depth-first search)
|
|
|
- - know the difference between these:
|
|
|
+ - MIT: https://www.youtube.com/watch?v=AfSk24UTFS8&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb&index=14
|
|
|
+ - notes:
|
|
|
+ time complexity: O(n)
|
|
|
+ space complexity:
|
|
|
+ best: O(log n) - avg. height of tree
|
|
|
+ worst: O(n)
|
|
|
- inorder (DFS: left, self, right)
|
|
|
- postorder (DFS: left, right, self)
|
|
|
- preorder (DFS: self, left, right)
|
|
|
- - level order (BFS, using queue)
|
|
|
+
|
|
|
|
|
|
- Binary search trees: BSTs
|
|
|
* - Series: https://www.coursera.org/learn/data-structures-optimizing-performance/lecture/p82sw/core-introduction-to-binary-search-trees
|
|
|
* - Series: https://class.coursera.org/algs4partI-010/lecture/43
|
|
|
- starts with symbol table and goes through BST applications
|
|
|
* - https://www.coursera.org/learn/data-structures/lecture/E7cXP/introduction
|
|
|
+ - MIT: https://www.youtube.com/watch?v=9Jry5-82I68
|
|
|
- C/C++:
|
|
|
* - https://www.youtube.com/watch?v=COZK7NATh4k&list=PL2_aWCzGMAwI3W_JlcBbtYTwiQSsOTa6P&index=28
|
|
|
* - https://www.youtube.com/watch?v=hWokyBoo0aI&list=PL2_aWCzGMAwI3W_JlcBbtYTwiQSsOTa6P&index=29
|
|
|
* - https://www.youtube.com/watch?v=Ut90klNN264&index=30&list=PL2_aWCzGMAwI3W_JlcBbtYTwiQSsOTa6P
|
|
|
- - https://www.youtube.com/watch?v=_pnqMz5nrRs&list=PL2_aWCzGMAwI3W_JlcBbtYTwiQSsOTa6P&index=31
|
|
|
- - https://www.youtube.com/watch?v=9RHO6jU--GU&list=PL2_aWCzGMAwI3W_JlcBbtYTwiQSsOTa6P&index=32
|
|
|
- - https://www.youtube.com/watch?v=86g8jAQug04&index=33&list=PL2_aWCzGMAwI3W_JlcBbtYTwiQSsOTa6P
|
|
|
+ * - https://www.youtube.com/watch?v=_pnqMz5nrRs&list=PL2_aWCzGMAwI3W_JlcBbtYTwiQSsOTa6P&index=31
|
|
|
+ * - https://www.youtube.com/watch?v=9RHO6jU--GU&list=PL2_aWCzGMAwI3W_JlcBbtYTwiQSsOTa6P&index=32
|
|
|
+ * - https://www.youtube.com/watch?v=86g8jAQug04&index=33&list=PL2_aWCzGMAwI3W_JlcBbtYTwiQSsOTa6P
|
|
|
- https://www.youtube.com/watch?v=gm8DUJJhmY4&index=34&list=PL2_aWCzGMAwI3W_JlcBbtYTwiQSsOTa6P
|
|
|
- https://www.youtube.com/watch?v=yEwSGhSsT0U&index=35&list=PL2_aWCzGMAwI3W_JlcBbtYTwiQSsOTa6P
|
|
|
- https://www.youtube.com/watch?v=gcULXE7ViZw&list=PL2_aWCzGMAwI3W_JlcBbtYTwiQSsOTa6P&index=36
|
|
@@ -372,6 +382,7 @@ Know least one type of balanced binary tree (and know how it's implemented):
|
|
|
- splay trees
|
|
|
- https://www.coursera.org/learn/data-structures/lecture/O9nZ6/splay-trees
|
|
|
- AVL trees
|
|
|
+ - MIT: https://www.youtube.com/watch?v=FNeL18KsWPc&list=PLUl4u3cNGP61Oq3tWYp6V_F-5jb5L2iHb&index=6
|
|
|
- https://www.coursera.org/learn/data-structures/lecture/Qq5E0/avl-trees
|
|
|
- https://www.coursera.org/learn/data-structures/lecture/PKEBC/avl-tree-implementation
|
|
|
- https://www.coursera.org/learn/data-structures/lecture/22BgE/split-and-merge
|