You are on page 1of 2

Data Structure & Algorithms BIT273CO

Year: II Teaching Schedule Hours/Week Theory 3 implementations. Tutorial 1 Practical 2 Semester: III Examination Scheme Internal Assessment Theory Practical 20 50 Theory 80 Final Practical Total 150

Course Objective: To provide fundamental knowledge of data structure, various algorithms used, and their Course Contents:
1. Introduction 1.1 Data and Data types 1.2 Data structure and its operations and importance 1.3 ADT and its applications and importance 1.4 ADT vs DS (2 Hrs)

2. Algorithmic Efficiency and its Complexity 2.1 Time and space analysis 2.2 Asymptotic notations — Big O, Big Sigma, Theta, Omega 3. Stack 3.1 3.2 3.3 3.4 3.5 Definition Primitive operations with examples representing stack in C Stack implementation (PUSH/POP) operations, Stack as an ADT Prefix, infix and postfix expressions 3.5.1 Definitions 3.5.2 Algorithms for evaluation of infix and postfix expression 3.5.3 Converting an expression from infix to postfix and vice versa

(2 Hrs)

(4 Hrs)

4.

Queue 4.1 4.2 4.3 4.4 4.5

(3 Hrs) Definition Primitive operations with examples representing queue in C Queue implementation (Enqueue/Dequeue) operations Queue as an ADT Types of queue (Linear, Circular, Priority queue and its types)

5.

List and Linked List (6 Hrs) 5.1 Introduction to list and linked list 5.2 Advantages of list over stack and queue 5.3 Types of lists (static and dynamic) 5.4 List and list operations 5.5 Array implementation of list 5.6 Linked list as an ADT 5.7 Linked list and its types 5.7.1 Linear linked list — singly linear and doubly linear 5.7.2 Circular linked list — singly circular and doubly circular 5.8 Linked list operations (Insertion/deletion from the front node, from the last node, before a given node, after a given node) 5.9 Linked stack and Linked queue 5.10 Doubly linked list and its advantages Recursion (4 Hrs) 6.1 Definition and recursive functions 6.2 Recursion vs iteration with advantages and disadvantages 6.3 Application of recursion — Factorial calculation, Fibonacci series, TOH, Natural numbers multiplication with algorithms and examples 6.4 Efficiency of recursion

6.

depth and level of binary tree Balanced trees — AVL balanced tree and balancing algorithm. Brasssand & P. Round-robin algorithm. Radix sort.6 10.2 7.2 Efficiency of sorting Searching and Hashing 9. Robert L. Greedy algorithm.4 10. Tenenbaum. Quick sort. 7.2 10. 8.7 Efficiency comparisons of different search techniques Graphs 10. Binary tree search 9. Merge sort. 7. 3. Warshall’s algorithm Types of graphs Graph traversal — depth first search (DFS). L.5 10.1 Definition of search and concepts of keys. W.1 Definition and types of sorting (Internal and external sort. Aarton M.4 Definition of hashing 9. Exchange/bubble sort. Sahani “Data Structure of Program Design in C”. Binary search. 2. Y. B. G.3 General search tree 9. tree and binary Implementations of Graphs: graph traversals Implementations of Hashing Implementations of Heap Reference Books: 1.5 Hash function and hash table 9. Heap and heap sort 8. (7 hrs) Definition and representation of graphs Application of graphs Graph as an ADT Adjacency matrix implementation. 5. 3. 5. Essentials of searching 9.7 10. balancing of AVL Implementations of Merge sort Implementations of Search: sequential. 10. Transitive closure. 1. Trees 7. 4. M. Bratley. C. post-order and in-order Height. Rowe. Sorting & Searching”. Insertion and selection sort.8 (6 hrs) 9.4 7.1 10. Dijkstra’s algorithm Laboratory: There shall be following lab exercises based on C or C++. Augenstein.6 Collision resolution technique 9. Leung.6 (6 Hrs) Concepts and definitions Binary tree and its applications Basic operations in binary tree — insertion/deletion. H. Knuti-1 “Data Structure & Application”.5 7. J. P.1 7.7. PHI “Fundamentals of Algorithms”. Donald E. 4. PHI “The Art of Programming.3 7. PHI “Fundamental of Computer Algorithms”. PHI . Langsam. Shell sort. 10. Implementation of Stack Implementations of Linear and Circular queues Solution of TOH and Fibonacci Recursion Implementations of Linked list: singly and doubly linked Implementations of Trees: AVL trees. Huffman Coding algorithm 8. Kruse. breadth first search (BFS) Spanning tree and spanning forest Kruskal’s algorithm. 6. “Data Structure using C & C++”. Trebly & Sorenson “Introduction to Data Structure & Algorithms with C & C++”. 9. Tondo. traversing Binary tree traversals — pre-order.2 Types of searching — Sequential search. 6.3 10. G. 2. Sorting (5 Hrs) 8.