Course Outcomes: At the end of the course, Student will be able to
CO1: Understand the role of linear and nonlinear data structures in organizing and accessing data (Understand-L2)
CO2: Implement abstract datatype(ADT)and data structures forgiven application. (Apply-L3)
CO3: Design algorithms based on techniques like linked list, stack, queue, trees etc. (Apply-L3)
CO4: Apply the appropriate linear and non linear data structure techniques for solving a problem. (Apply-L3)
CO5: Design hash-based solutions for specific problems.(Apply-L3)
UNIT I
Introduction to Linear Data Structures: Definition and importance of linear data structures, Abstract data types (ADTs) and their implementation, Overview of time and space complexity analysis for linear data structures.
Searching Techniques: Linear & Binary Search
Sorting Techniques: Bubble Sort, Selection Sort, Insertion Sort
UNIT II
Linked Lists: Singly linked lists: representation and operations, doubly linked lists and circular linked lists, Comparing arrays and linked lists, Applications of linked lists.
UNIT III
Stacks: Introduction to stacks: properties and operations, implementing stacks using arrays and linked lists, Applications of stacks in expression evaluation, backtracking, reversing list etc.
UNIT IV
Queues: Introduction to queues: properties and operations, implementing queues using arrays and linked lists, Applications of queues in breadth-first search, scheduling, etc.
Deques: Introduction to deques(double-ended queues),Operations on deques and their applications.
UNIT V
Trees: Introduction to Trees, Binary Search Tree–Insertion, Deletion & Traversal
Hashing: Brief introduction to hashing and hash functions, Collision resolution techniques: chaining and open addressing,
Hash tables: basic implementation and operations, Applications of hashing in unique identifier generation, caching, etc.
"Bad programmers worry about the code. Good programmers worry about data structures and their relationships."
~ Linus Torvalds