BCA203CO Data Structure Algorithm
BCA203CO Data Structure Algorithm
BCA203CO
Year: II Semester: I
Teaching Schedule Hours/Week Examination Scheme
Theory Tutorial Practical Internal Assessment Final Total
3 1 2 Theory Practical Theory Practical 100
20 20 60 -
Course Objective
The main objective of this course is to provide fundamental knowledge of data structure,
various algorithms used and their implementations.
Course contents
1. Introduction [2 Hrs]
1.1 Introduction to Data and Data Types
1.2 Data Structure (DS), Abstract Data Type (ADT) and Applications
1.3 Abstract Data Type vs. Data Structure
3. Stack [5 Hrs]
3.1 Definition and Examples of Stack
3.2 Stack as an Abstract Data Type
3.3 Array Representation/ Implementation of Stack
3.4 Primitive Stack Operations and Algorithm Efficiency
3.5 Stack Overflow and Stack Underflow Conditions
3.6 Application of Stack: Prefix, Infix and Postfix Expression:
3.6.1 Definition.
3.6.2 Evaluation of Infix, Prefix and Postfix Expression using Stack.
3.6.3 Converting an Expression from Infix to Postfix and Vice-Versa.
1
4. Queue [4 Hrs]
4.1 Definition and Examples of Queue
4.2 Queue as an Abstract Data Type
4.3 Array Representation/ Implementation of Queue
4.4 Primitive Queue Operations and Algorithm Efficiency
4.5 Queue Overflow and Stack Underflow Conditions
4.6 Linear and Circular Queue
4.7 Priority Queue
6. Recursion [3 Hrs]
6.1 Principle of Recursion
6.2 Recursion Vs. Iteration with Advantages and Disadvantages
6.3 Applications of Recursion: Fibonacci Sequence, TOH and Multiplication of
Natural Numbers; with Algorithm Efficiency
7. Trees [6 Hrs]
7.1 Concepts and Definitions of Tree
7.2 Properties of Tree
7.3 Binary Tree: Definition, Applications, Representation using Linked List
7.4 Binary Search Tree (BST)
7.5 Insertion, Deletion in Binary Search Tree
2
7.6 Binary Tree Traversals – Pre-order, In-order and Post-order Traversal.
7.7 Height, Depth and Level of a Tree
7.8 AVL Tree and Balancing Algorithm
7.9 Huffman Algorithm
8. Sorting [6 Hrs]
8.1 Definition and types of Sorting: Internal and External sort
8.2 Sorting Algorithms: Insertion Sort, Selection sort, Bubble sort
8.3 Sorting using Divide & Conquer: Quick Sort, Merge Sort
8.4 Radix Sort, Shell sort
8.5 Heap Sort as a Priority Queue
8.6 Efficiency of Sorting Algorithms
10. Graphs
10.1 Definition and Representation of Graphs
10.2 Application of Graphs
10.3 Graphs as an Abstract Data Type
10.4 Adjacency Matrix Representation, Transitive Closure
10.5 Warshall’s Algorithm
10.6 Types of Graphs
10.7 Graph Traversal: Depth First Search (DFS), Breadth First Search (BFS)
10.8 Spanning Tree and Spanning Forest
10.9 Minimum Spanning Tree & Greedy Approach: Kruskal’s Algorithm, Prim’s
Algorithm, Round Robin Algorithm
10.10Finding Shortest Path: Dijkstra’s Algorithm
3
Laboratory
There shall be following Lab Exercises:
Implementation of Stack
Implementation of Linear and Circular Queues
Solution of TOH and Fibonacci Sequence
Implementation of Linked List: Singly and Doubly Linear & Circular Linked List
Implementation of Tree: Binary Tree Traversals
Implementation of trees: AVL Trees
Implementation of Merge Sort
Implementation of Heap
Implementation of Search: Sequential, Binary
Implementation of Hashing
Implementation of Graph: Graph Traversals
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-I.
5. “Data Structure & Application”, Trebly & Sorenson
6. “Introduction to Data Structure & Algorithms with C & C++”, G. W. Rowe, PHI
7. “Fundamentals of Algorithms”, G. Brassand & P. Bratley, PHI