DATA STRUCTURES AND ALGORITHMS CSE Syllabus for NIT Jalandhar
CS-209 DATA STRUCTURES AND ALGORITHMS [3 1 0 4]
Introduction: Basic Terminology, Elementary Data Organization, Structure operations, Algorithm Complexity and Time-Space trade-off
Arrays: Array Definition, Representation and Analysis, Single and Multidimensional Arrays, address calculation, application of arrays, Character String in C++, Character string operation, Array as Parameters, Ordered List, Sparse Matrices and Vectors.
Stacks: Array Representation and Implementation of stack, Operations on Stacks: Push & Pop, Array Representation of Stack, Linked Representation of Stack, Operations Associated with Stacks, Application of stack: Conversion of Infix to Prefix and Postfix Expressions, Evaluation of postfix expression using stack.
Recursion: Recursive definition and processes, recursion in C, example of recursion, Tower of Hanoi Problem, simulating recursion, Backtracking, recursive algorithms, principles of recursion, tail recursion, removal of recursion.
Department of Computer Science and Engineering
Queues: Array and linked representation and implementation of queues, Operations on Queue: Create, Add, Delete, Full and Empty, Circular queues, D-queues and Priority Queues.
Linked list: Representation and Implementation of Singly Linked Lists, Two-way Header List, Traversing and Searching of Linked List, Overflow and Underflow, Insertion and deletion to/from Linked Lists, Insertion and deletion Algorithms, Doubly linked list, Linked List in Array, Polynomial representation and addition, Generalized linked list, Garbage Collection and Compaction.
Trees: Basic terminology, Binary Trees, Binary tree representation, algebraic Expressions, Complete Binary Tree, Extended Binary Trees, Array and Linked Representation of Binary trees, Traversing Binary trees, Threaded Binary trees, Traversing Threaded Binary trees, Huffman algorithm.
Binary Search Trees: Binary Search Tree (BST), Insertion and Deletion in BST, Complexity of Search Algorithm, Path Length, AVL Trees, B-trees.
Searching and Hashing: Sequential search, binary search, comparison and analysis, Hash Table, Hash Functions, Collision Resolution Strategies, Hash Table Implementation.
Sorting: Insertion Sort, Bubble Sorting, Quick Sort, Two Way Merge Sort, Heap Sort, Sorting on Different Keys, Practical consideration for Internal Sorting.
Graphs: Terminology & Representations, Graphs & Multi-graphs, Directed Graphs, Sequential Representations of Graphs, Adjacency Matrices, Traversal, Connected Component and Spanning Trees, Minimum Cost Spanning Trees.
File Structures: Physical Storage Media File Organization, Organization of records into Blocks, Sequential Files, Indexing and Hashing, Primary indices, Secondary indices, B+ Tree index Files, B Tree index Files, Indexing and Hashing Comparisons.
1. Horowitz and Sahani, “Fundamentals of data Structures”, Galgotia Publication Pvt. Ltd., New Delhi.
2. R. Kruse etal, “Data Structures and Program Design in C”, Pearson Education Asia, Delhi-2002
3. A. M. Tenenbaum, “Data Structures using C & C++”, Prentice-Hall of India Pvt. Ltd., New Delhi.
4. Bruno R Preiss, “Data Structures and Algorithms with Object Oriented Design Pattern in C++”, Jhon Wiley & Sons, Inc.
5. Gilberg Forozan , “Data Structure – A pseudo code approach with C++”, Cengage Learning, New Delhi.