ADSA Course (Advanced Data Structures & Algorithms)
Swarnandhra College of Engineering and Technology, 2025-2026
Syllabus
Course Objectives
- Provide knowledge on advanced data structures frequently used in Computer Science.
- Develop skills in algorithm design techniques.
- Understand the use of various data structures in algorithm design.
Course Outcomes
- CO1: Discover the performance of an algorithm using asymptotic notation.
- CO2: Use divide and conquer technique to solve problems.
- CO3: Understand greedy and dynamic programming techniques.
- CO4: Recognize problems suitable for backtracking, branch and bound solutions.
- CO5: Understand the complexity classes NP-Hard and NP-Complete.
Units
- UNIT I: Algorithm Analysis, AVL Trees, B-trees, B+ trees.
- UNIT II: Heap Trees, Graph Terminology, Search and Traversals.
- UNIT III: Divide and Conquer, Greedy Method.
- UNIT IV: Dynamic Programming, Backtracking.
- UNIT V: Branch and Bound, NP Hard and NP Complete Problems.
Lab Programs
- Program 1: Construct an AVL tree and implement insert and delete operations.
- Program 2: Construct a B-Tree and implement searching, insertion, and deletion.
- Program 3: Implement Min and Max Heap using arrays, and delete an element.
- Program 4: Implement BFS and DFS for a given graph using Adjacency Matrix and Lists.
- Program 5: Find biconnected components in a given graph.
- Program 6: Implement Quick Sort and Merge Sort and observe execution time.
- Program 7: Compare performance of Single Source Shortest Paths using Greedy method.
- Program 8: Implement Job Sequencing with deadlines using Greedy strategy.
Materials
Textbooks
- Fundamentals of Data Structures in C++, Horowitz, Ellis; Sahni, Sartaj.
- Computer Algorithms/C++, Ellis Horowitz, Sartaj Sahni, Sanguthevar Rajasekaran.
Reference Books
- Data Structures and Program Design in C, Robert Kruse, Pearson Education Asia.
- The Art of Computer Programming, Vol. 1, Donald E Knuth, Addison-Wesley.
Sample Lab Program Code
Source Code for AVL Tree
// AVL Tree insertion and deletion code class AVLTree { // class implementation }
Output for AVL Tree Operations
Insertion: Tree after insertion Deletion: Tree after deletion
No comments:
Post a Comment