Pointers. Classes. Virtual functions and abstract classes. Overloading. Recursion. Linked list: singly, doubly, circular. Stacks, Stack operations and Implementation of Stacks as linked-list. Queues, Queue operations and Implementation of Queues as linked-list. Trees, Binary Trees.