Programming: Basic to Advanced

Linear data structures and algorithms.

  • Arrays
  • Linked List
  • Stack
  • Queues

Basic algorithms :

Some popular algorithmic techniques:

Then comes some typical data structures:

  • Trees - Binary Tree, General Tree, Lowest Common Ancestor
  • Binary Search Tree - Inorder Traversal, Level order traversal, finding kth largest element, diameter, depth, number of nodes, etc.
  • Heaps - Array Implementation, Heapify, Heap Sort
  • Union Find
  • Hash Table - Linear Probing, Open addressing, Collision avoidance

Then you can learn about Graphs:

By this time you are already pretty good with programming. You will do better than most of undergrad CS students. If you want to learn more and delve deep read more.

Advance Tree and Graph :

  • Balanced Trees - AVL, Red-Black
  • Heavy Light Decomposition, B+ Trees, Quad Tree
  • Advance Graph - Min Cut, Max Flow
  • Maximum Matching - Hall's Marriage
  • Hamiltonian Cycle
  • Edge Graphs / Line Graphs
  • Strongly Connected Components
  • Dominant Sub-Graph, Vertex Cover, Travelling Salesman - Approx algos

Advance String Algorithms :

  • Knuth Morris Pratt Algorithm
  • Rabin Karp Algorithm
  • Tries and Compressed Tries
  • Prefix Trees, Suffix Trees, Suffix Automation - Ukkonen Algorithm

Advance Math:

  • Fast Fourier Tranformation
  • Primality Testing
  • Computational Geometry - Closest point pair, Voronoi diagram, Convex Hull

General Advance topics :

  • Iterating through all combination / permutation
  • Bit manipulation
blog comments powered by Disqus