Static and Dynamic Memory Allocation, Recursion, Algorithms, Stacks, Queues, Linked Lists, Circular Linked Lists, Trees, Binary Trees, Hash Tables, Searching and Sorting Algorithms.