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. [3]
4. Linked List:
Linear linked list, operations on linear linked list, doubly linked list, operations on doubly linked
list, apication of linked lists. [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. [4]
6. Queues:
Sequential representation of queue, linear queue, circular queue, operations on linear and circular
queue, linked representation of a queue and operations on it, deque, priority queue, applications of queues.
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. [2]
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. [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. [3]
Searching & Sorting: Searching an element using linear search and binary search techniques, 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.