Data Structures and Algorithms
Course Title: Data Structures and Algorithms
Course No: CSC211
Nature of the Course: Theory + Lab
Semester: 3
Full Marks: 60 + 20 + 20
Pass Marks: 24 + 8 + 8
Credit Hours: 3
Course Description
Course Objectives
Course Contents
- Data types
- Data structure
- Abstract data type
- Introduction to algorithms
- Asymptotic notations
- Common functions
- Basic concept of stack
- Stack as an ADT
- Stack operations
- Stack applications
- Conversion from infix to postfix expression
- Conversion from infix to prefix expression
- Evaluation of postfix expression
- Evaluation of prefix expression
- Basic concept of queue
- Queue as an ADT
- Primitive operations in queue
- Linear queue
- Circular queue
- Priority queue
- Principle of recursion
- Comparison between recursion and iteration
- Tail recursion
- Factorial
- Fibonacci sequence
- GCD
- Tower of Hanoi (TOH)
- Basic concept of list
- List as an ADT
- Array implementation of list
- Linked list
- Singly linked list
- Doubly linked list
- Circular linked list
- Node creation
- Insertion at beginning
- Insertion at end
- Insertion at specified position
- Deletion from beginning
- Deletion from end
- Deletion from specified position
- Introduction to sorting
- Internal sort
- External sort
- Bubble sort
- Selection sort
- Insertion sort
- Shell sort
- Merge sort
- Quick sort
- Heap sort
- Introduction to searching
- Sequential search
- Binary search
- Hash function
- Hash tables
- Collision resolution techniques
- Concept and definitions
- Basic operations in binary tree
- Tree height, level and depth
- Insertion
- Deletion
- Traversals
- Search in BST
- Balancing algorithm
- Applications of trees
- Definition of graphs
- Representation of graphs
- Graph traversal
- Kruskal algorithm
- Prims algorithm
- Dijkstra algorithm
Laboratory Works
- 1.Dynamic memory allocation and deallocation strategies
- 2.Stack operations and queue operations
- 3.Array and linked list implementation of list
- 4.Linked list implementation of stack and queues
- 5.Sorting, searching and hashing algorithms
- 6.Binary search trees and AVL trees
- 7.Graph representation, spanning tree and shortest path algorithms
Text Books
- 1.Y Langsam , MJ Augenstein and A.M , Tanenbaum Data Structures using C and C++ , Prentice Hall India, Second Edition 2015
Reference Books
- 1.Leen Ammeral, Programmes and Data Structures in C, Wiley Professional Computing
- 2.G.W Rowe, Introduction to Data Structure and Algorithms with C and C++ , Prentice Hall India
- 3.R.L Kruse, B.P. Leung, C.L. Tondo, Data Structure and Program Design in Prentice- Hall India