Data Structure & Algorithm

Download as pdf or txt
Download as pdf or txt
You are on page 1of 3

Data Structure & Algorithms

BCA273CO

Year: II Semester: I
Teaching Schedule
Hours/Week Examination Scheme
Theory Tutorial Practical Internal Assessment Final Total
Theory Practical Theory Practical
3 1 2 20 20 60 - 100

Course Objective: To provide fundamental knowledge of data structure, various algorithms used, and their
implementations.

Course Contents:
1. Introduction [2 Hrs]
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. Algorithmic Efficiency and its Complexity [2 Hrs]


2.1 Time and space analysis
2.2 Asymptotic notations — Big O, Big Sigma, Theta, Omega

3. Stack [4 Hrs]
3.1 Definition
3.2 Primitive operations with examples representing stack in C
3.3 Stack implementation [PUSH/POP] operations,
3.4 Stack as an ADT
3.5 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

4. Queue [3 Hrs]
4.1 Definition
4.2 Primitive operations with examples representing queue in C
4.3 Queue implementation [Enqueue/Dequeue] operations
4.4 Queue as an ADT
4.5 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

6. 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
7. Trees [6 Hrs]
7.1 Concepts and definitions
7.2 Binary tree and its applications
7.3 Basic operations in binary tree — insertion/deletion, traversing
7.4 Binary tree traversals — pre-order, post-order and in-order
7.5 Height, depth and level of binary tree
7.6 Balanced trees — AVL balanced tree and balancing algorithm, Huffman Coding algorithm

8. Sorting [5 Hrs]
8.1 Definition and types of sorting [Internal and external sort, Insertion and selection sort,
Exchange/bubble sort, Quick sort, Merge sort, Radix sort, Shell sort, Heap and heap sort
8.2 Efficiency of sorting

9. Searching and Hashing [6 hrs]


9.1 Definition of search and concepts of keys, Essentials of searching
9.2 Types of searching — Sequential search, Binary search, Binary tree search
9.3 General search tree
9.4 Definition of hashing
9.5 Hash function and hash table
9.6 Collision resolution technique
9.7 Efficiency comparisons of different search techniques

10. Graphs [7 hrs]


10.1 Definition and representation of graphs
10.2 Application of graphs
10.3 Graph as an ADT
10.4 Adjacency matrix implementation, Transitive closure, Warshall’s algorithm
10.5 Types of graphs
10.6 Graph traversal — depth first search [DFS], breadth first search [BFS]
10.7 Spanning tree and spanning forest
10.8 Kruskal’s algorithm, Round-robin algorithm, Greedy algorithm, Dijkstra’s algorithm

Laboratory: There shall be following lab exercises based on C or C++.


1. Implementation of Stack
2. Implementations of Linear and Circular queues
3. Solution of TOH and Fibonacci Recursion
4. Implementations of Linked list: singly and doubly linked
5. Implementations of Trees: AVL trees, balancing of AVL
6. Implementations of Merge sort
7. Implementations of Search: sequential, tree and binary
8. Implementations of Graphs: graph traversals
9. Implementations of Hashing
10. Implementations of Heap
Reference Books:
1. “Data Structure using C & C++”, Aarton M. Tenenbaum, Y. Langsam, M. J. Augenstein, PHI
2. “Fundamental of Computer Algorithms”, H. Sahani
3. “Data Structure of Program Design in C”, Robert L. Kruse, B. P. Leung, C. L. Tondo, PHI
4. “The Art of Programming, Sorting & Searching”, Donald E. Knuti-1
5. “Data Structure & Application”, Trebly & Sorenson
6. “Introduction to Data Structure & Algorithms with C & C++”, G. W. Rowe, PHI
7. “Fundamentals of Algorithms”, G. Brasssand & P. Bratley, PHI

You might also like