Data Structure and Algorithms
0%
Course Title: Data Structure and Algorithms
Course No: ENCT 252
Nature of the Course: Theory + Lab
Semester: 4
Full Marks: 40 + 60 + 50
Pass Marks: 16 + 24 + 20
Credit Hours: 3
Course Description
Course Objectives
Course Contents
1. Introduction
4 hrs
1.1. Introduction to data structures
- Need of data structures
- Types of data structures and its characteristics
1.4. Algorithm analysis
- Time and space complexity
- Best, worst and average case analysis
- Rate of growth
- Asymptotic notations: Big Oh, Big Omega and Big Theta
2.3. Stack applications
- Expression conversion: Infix to postfix and prefix expression
- Expression evaluation: Infix and postfix expression evaluation
2.4. Recursion
- Concept of recursion
- Recursion and stack
- Recursion vs iteration
- Execution of recursive calls
- Types of recursions
- Applications of recursion: Tower of Hanoi
3. Queues
5 hrs
4. Linked List
6 hrs
4.6. Application of linked list
- Linked list implementation of stack and queue ADT
- Solving polynomial equations using linked list
5. Tree
7 hrs
5.2. Binary trees
- Definition and types
- Array and linked list representation
- Traversal algorithms: Pre-order, in-order and post-order traversal
- Application of full binary tree: Huffman algorithm
5.3. Binary search tree
- Definition and operations on binary search tree: Insertion, deletion, searching and traversing
- Construction of binary search tree
5.4. Balanced binary tree
- Problem with unbalanced binary trees
- Balanced binary search tree
- AVL tree, definition and need of AVL tree, construction of AVL tree: Insertion, deletion on AVL tree and rotation operations
6. Graphs
6 hrs
8.2. Different searching algorithms and its efficiency
- Sequential search
- Binary search
8.3. Hashing
- Definition and its applications
- Hash function
- Hash table
- Collision in hash table
- Collision resolution techniques: Chaining method and open addressing method (Linear probing, quadratic probing and double hashing)
Laboratory Works
- 1.Implementation of stack using array and its applications
- 2.Implementation of recursive algorithms
- 3.Implementations of linear queue and circular queue using arrays
- 4.Implementation of static list and linked list
- 5.Implementation of stack and queue using linked list and application of linked list
- 6.Implementation of in-order, pre-order and post-order tree traversals
- 7.Implementation of breadth-first and depth-first search to traverse a graph
- 8.Implementation of different sorting algorithms
- 9.Implementation of different searching algorithms
Text Books
- 1.Langsam, Y. Augenstein .M. J. and Tenenbaum A. M. (1996). Data Structures using C and C++. Prentice Hall Press.
- 2.Rowe, G. W. (1997). Introduction to data structures and algorithms with C++. Prentice-Hall, India.
- 3.Cormen, T. H., Leiserson, C. E., Rivest, R. L., and Stein, C. (2022). Introduction to algorithms. MIT press.
- 4.Kruse, R. L., and Ryba, A. J. (1998). Data structures and program design in C++. Prentice Hall, India.
- 5.Thareja, R. (2014). Data Structures Using C. Oxford University Press.