**Outline of Syllabus**

- Basic concepts of Data Representation
- Introduction to Algorithm Design
- Arrays
- Linked List
- Stacks
- Queues
- Trees
- Searching, Sorting and Hashing
- Graphs

**Detailed Contents**

- Linear arrays
- Memory representation/address calculation
- Operations
- Traversal
- Search
- Insertion
- Deletion

- Two Dimensional arrays

- Stacks
- Introduction
- Representation
- Operations
- Implementation
- Representing two stacks in an array
- Application of stacks
- Parenthesis checker
- Evaluation of Postfix expression
- Evaluation of Prefix expression
- Evaluation of Infix expression
- Conversion from Infix to Postfix
- Conversion from Infix to Prefix
- Conversion from Postfix to Prefix
- Conversion from Postfix to Infix
- Conversion from Prefix to Postfix
- Conversion from Prefix to Infix

- Recursion

- Trees
- Introduction
- Terminology
- Binary Trees
- Binary Search Trees
- Threaded Binary Trees
- Representation
- Creation
- Insertion
- In-order traversal
- Deletion
- Disposing

- Advanced Trees

**CHAPTER VIII – SEARCHING, SORTING AND HASHING**

- Searching, sorting and hashing
- Linear & Binary Search
- Sorting
- Insertion sort
- Selection sort (General and Straight)
- Quick sort
- Merge sort
- Heap sort
- Radix sort
- Bubble sort
- Shell sort
- Linear sort
- Address calculation sort
- Sorting on multiple keys

- Indexed Search
- Hash Tables and Hashing
- Direct Address tables
- Hash functions
- Division
- Prime division
- Folding
- Mid-square
- Multiplication
- Radix transformation
- Digit re-arrangement

- Hash tables
- Initializing
- Inserting
- Deleting
- Searching

- Resolving collisions
- Chaining
- Direct
- Coalesced

- Open addressing
- Linear probing
- Quadratic probing

- Rehashing

- Chaining

- Graphs
- Representation
- Traversal schemes
- Minimal Spanning