Chapter 1

Introduction

Data types; Data structure and abstract data type; Dynamic memory allocation in C; Introduction to algorithms; Asymptotic notations and common functions.

Chapter 2

Stack

Basic concept of stack; Stack as an ADT; Stack operations and applications; Infix to postfix/prefix conversion; Evaluation of postfix and prefix expressions.

Chapter 3

Queue

Basic concept of queue; Queue as ADT; Primitive operations; Linear queue; Circular queue; Priority queue; Queue applications.

Chapter 4

Recursion

Principle of recursion; Recursion vs iteration; Tail recursion; Examples: factorial, Fibonacci, GCD, Tower of Hanoi; Applications and efficiency.

Chapter 5

Lists

Concept of lists; ADT list; Array implementation; Linked lists—singly, doubly and circular; Basic operations on lists.

Chapter 6

Sorting

Introduction to sorting; Internal and external sorting; Bubble, Selection, Insertion sort; Shell sort; Divide-and-conquer sorting.

Chapter 7

Searching and Hashing

Sequential and binary search; Efficiency; Hashing—hash functions, hash tables, collision handling techniques.

Chapter 8

Trees and Graphs

Definitions; Binary tree operations; Tree height, level, depth; BST operations; AVL trees; Graphs and basic graph operations.