1. Dynamic Memory Management: Understanding pointers, usage of pointers, arithmetic on pointers,
memory allocation, memory management functions and operators, debugging pointers - dangling
pointers, memory leaks, etc. [2]
2. Introduction: Concept of data type, definition and brief description of various data structures, data
structures versus data types, operations on data structures, algorithm complexity, Big O notation. [2]
3. Arrays: Linear and multi-dimensional arrays and their representation, operations on arrays, sparse
matrices and their storage.
4. Linked List: Linear linked list, operations on linear linked list, doubly linked list, operations on
doubly linked list, application of linked lists.
[3]
[4]
5. Stacks: Sequential and linked representations, operations on stacks, application of stacks such as
parenthesis checker, evaluation of postfix expressions, conversion from infix to postfix representation,
implementing recursive functions.
6. Queues: Sequential representation of queue, linear queue, circular queue, operations on linear and
[4]
circular queue, linked representation of a queue and operations on it, deque, priority queue, applications of
queues. [4]
7. Trees: Basic terminology, sequential and linked representations of trees, traversing a binary
tree using recursive and non-recursive procedures, inserting a node, deleting a node, brief introduction to
threaded binary trees, AVL trees and B-trees. [4]
8. Heaps: Representing a heap in memory, operations on heaps, application of heap in implementing
priority queue and heap sort algorithm.
9. Graphs: Basic terminology, representation of graphs (adjacency matrix, adjacency list), traversal of
a graph (breadth-first search and depth-first search), and applications of graphs.
[2]
[3]
10. Hashing & Hash Tables: Comparing direct address tables with hash tables, hash functions,
concept of collision and its resolution using open addressing and separate chaining, double hashing,
rehashing.
11. Searching & Sorting: Searching an element using linear search and binary search techniques,
[3]
Sorting arrays using bubble sort, selection sort, insertion sort, quick sort, merge sort, heap sort, shell sort
and radix sort, complexities of searching & sorting algorithms.