Data Structures and Algorithms
Data structures:
- Arrays and linked lists
- Stacks and queues
- Trees (e.g. binary trees, AVL trees, B-trees)
- Hash tables
- Heaps (e.g. binary heap, Fibonacci heap)
- Tries
- Graphs (e.g. adjacency list, adjacency matrix)
- Disjoint sets
Algorithms:
- Time and space complexity analysis
- Recursion
- Sorting algorithms (e.g. quicksort, mergesort)
- Search algorithms (e.g. binary search, linear search)
- Graph algorithms (e.g. Dijkstra’s shortest path, Prim’s minimum spanning tree)
- Divide and conquer algorithms (e.g. merge sort, Karatsuba multiplication)
- Dynamic programming (e.g. Bellman-Ford, Floyd-Warshall)
- Greedy algorithms (e.g. Huffman coding, Kruskal’s minimum spanning tree)
- Backtracking (e.g. n-queens problem, Sudoku)