Course Outcomes: On completion of this course, the students will be able to
COl Understand the algorithms and complexity along with asymptotic notation to represent
the complexity of algorithms.
CO2 Describe how arrays, linked lists, stacks, queues, trees, and graphs are represented in memory, used by the algorithms and their common applications.
CO3 Implement trees and graphs
and perform various
operations on these data structure.
CO4 Understand the concept of recursion, application of recursion and its implementation.
CO5 Identify the alternative implementations of data structures with respect to its
performance to solve real-world problems.
UNIT-I
Introduction to Data Structure: Data, Entity, Information, Difference between Data and Information, Data type, Built-in data type, Abstract data type, Definition of data structures, Types of data structures — Linear and Non-Linear data structure. Introduction to Algorithms: Definition, Difference between algorithm and programs, properties of algorithm, Algorithm design techniques, Performance analysis of algorithms, Complexity of algorithms, Asymptotic Notations — Big O Notation.
UNIT-II
Arrays: Definition, Single and Multidimensional arrays, Representation of arrays — Row Major Order and Column Major Order, Derivation of index formulae for 1-D, 2-D arrays. Sparse Matrices and their representations. Linked lists: Array and Pointer implementation of singly linked list, Operations on a linked list — insertion, deletion, traversal and searching. Doubly linked list. Circularly linked list.
UNIT-III
Stacks: Introduction, Primitive stack operations — push & pop, Array and linked implementation of stack, Applications of stack — conversion of infix to prefix and postfix expressions, Evaluation of prefix & postfix expression. Queues: Introduction, Queue operations — create, add, delete, is-full and is-empty. Circular Queue. Array and linked implementation of queues, Dequeue and Priority Queue.
UNIT-IV
Trees: Basic terminology used with tree, Binary trees, Binary tree representation — Array representation and Pointer (Linked list) representation. Binary Search Tree. Recursive algorithms of tree traversals — Inorder, Preorder and Postorder. Operation of insertion, deletion, searching & modification of data in a Binary Search Tree.
UNIT-V
Graphs: Terminology used with graph, Data structure for graph representations — Adjacency Matrices. Graph traversals — Depth First Search (DFS) and Breadth First Search (BFS).
Text and Reference Books:
1. Fundamentals of Data Structures in C, €. Horowitz and S. Sahani, Universities Press, 2“ Edition, 2008.
2. Data Structures and Algorithm Analysis in C, Mark Allen Weiss, Addison-Wesley, 2“ Edition, 1997.
3. Data Structure, Schaum’s Outline Series, TMH, Special Indian Ed., 17° Reprint, 2009.
4. Data Structures using C and C++, Y. Langsam et. al., PHI, 1999.
5. Data Structure & Algorithms, R. S. Salaria, Khanna Book Publishing Co. (P) Ltd., 2002.
6. Data Structure: A Pseudocode Approach with C, Richard F. Gilberg and Behrouz A. Forouzan, Cengage Learning, 2"d Ed., 2005.
7. Classic Data Structures, D. Samantha, Prentice Hall India, 2nd Edition.
8. Data Structures using C, Reema Thareja, Oxford Univ. Press
- Teacher: Omkar Agrahari