🎁Hash Tables

🎁Graphs

🎁Queues

image


**could be O(n) with hash collisions and dynamic array resizing but unlikely

🎁Arrays

Dynamic

Static

Searching. Is it sorted?

Yes - Divide and Conquer - Binary search O(log N) 🚀

No. Will sorting make it faster? If still no, Linear Search🚀

🎁Tree

🎁Linked List

🎁Singly Linked List

🎁Doubly Linked List

Improve Time Complexity?

Collision?

Linked List

🎁Binary Tree

String question?

Turn it into an Array ~ split() 🚀

🎁Stacks

Array Stack

Linked List Stack

Array Queue (BAD)

Linked List Queue

Graph Traversal? O(n)

🚀 Depth First Search (DFS)

🚀 Breadth First Search (BFS)

Shortest Path?

🚀 Bellman-Ford

Weighted or Unweighted?

Directed or Undirected?

🎁Trie

🎁Binary Search Tree

🎁Balanced BST

🎁AVL Tree

🎁Red Black Tree

Tree Traversal? O(n)

Sorting? ~ O(N log N)

Quick Sort 🚀

Merge Sort 🚀

Heap Sort 🚀

Bubble Sort 🚀

Insertion Sort 🚀

Selection Sort 🚀

Fast Access O(1), tradeoff: more memory O(n)

Radix Sort 🚀

image

image


** can be O(n) on expanding memory

image

image

image

Dynamic Programming

🚀Memoization

Recursion?

Be mindful of Space Complexity! (Stack overflow)

No. Is it a String? See if a Trie data structure helps

image

🎁Heap

🎁Binary Heap

Priority Queue

image

Cyclic or Acyclic?

Counting Sort 🚀

🚀 Dijkstra

Inorder

Postorder

Preorder