LECTURE NOTES ON DATA STRUCTURES Year : 2017 - 2018 Course Code : ACS102 Regulations : R16 Semester : I B.Tech II Semester Branch : CSE / IT / ECE / EEE Prepared by Ms. B Padmaja Associate Professor INSTITUTE OF AERONAUTICAL ENGINEERING (Autonomous) Dundigal, Hyderabad - 500 043
DATA STRUCTURES II Semester: CSE / ECE / EEE / IT Course Code Category ACS002 Foundation Contact Classes: 45 Tutorial Classes: 15 Hours / Week L T P 3 1 - Credits C 4 Practical Classes: Nil Maximum Marks CIA SEE Total 30 70 100 Total Classes: 60 COURSE OBJECTIVES: The course should enable the students to: I. II. III. IV. V. UNIT - 1 Learn the basic techniques of algorithm analysis. Demonstrate several searching and sorting algorithms. Implement linear and non-linear data structures. Demonstrate various tree and graph traversal algorithms. Analyze and choose appropriate data structure to solve problems in real world. INTRODUCTION TO DATA STRUCTURES, SEARCHING AND SORTING Basic concepts: Introduction to data structures, classification of data structures, operations on data structures, abstract data type, algorithms, different approaches to design an algorithm, recursive algorithms; Searching techniques: Linear search, binary search and Fibonacci search; Sorting techniques: Bubble sort, selection sort, insertion sort, quick sort, merge sort, and comparison of sorting algorithms. UNIT - 2 LINEAR DATA STRUCTURES Stacks: Primitive operations, implementation of stacks using Arrays, applications of stacks arithmetic expression conversion and evaluation; Queues: Primitive operations; Implementation of queues using Array, applications of linear queue, circular queue and double ended queue (DEQUE). UNIT - 3 LINKED LISTS Linked lists: Introduction, singly linked list, representation of a linked list in memory, operations on a Single linked list; Applications of linked lists: Polynomial representation and sparse matrix manipulation. Types of linked lists: Circular linked lists, doubly linked lists; Linked list representation and operations of Stack, linked list representation and operations of queue. UNIT - 4 NON LINEAR DATA STRUCTURES Trees : Basic concept, binary tree, binary tree representation, array and linked representations, binary tree traversal, binary search tree, tree variants, application of trees; Graphs: Basic concept, graph terminology, graph implementation, graph traversals, Application of graphs, Priority Queue. UNIT - 5 BINARY TREES AND HASHING Binary search trees: Binary search trees, properties and operations; Balanced search trees: AVL trees; Introduction to M - Way search trees, B trees; Hashing and collision: Introduction, hash tables, hash functions, collisions, applications of hashing. LIST OF REFERENCE BOOKS: 1. Y Daniel Liang, “Introduction to Programming using Python”, Pearson. 2. Benjamin Baka, David Julian, “Python Data Structures and Algorithms”, Packt Publishers,2017. 3. Rance D. Necaise, “Data Structures and Algorithms using Python”, Wiley Student Edition.
4. Martin Jones, “Python for Complete Beginners”, 2015. 5. Zed A. Shaw, “Learn Python the Hard Way: a very simple introduction to the terrifyingly beautiful world of computers and code”, 3e, Addison-Wesley, 2014. 6. Hemant Jain, “Problem Solving in Data Structures and Algorithms using Python: programming interview guide”, 2016. WEB REFERENCES: 1. 2. 3. 4. 5. 6. https://docs.python.org/3/tutorial/datastructures.html http://interactivepython.org/runestone/static/pythonds/index.html http://www.tutorialspoint.com/data_structures_algorithms http://www.geeksforgeeks.org/data-structures/ http://www.studytonight.com/data-structures/ http://www.coursera.org/specializations/data-structures-algorithms
UNIT – I INTRODUCTION TO DATA STRUCTURES, SEARCHING AND SORTING Basic Concepts: Introduction to Data Structures: A data structure is a way of storing data in a computer so that it can be used efficiently and it will allow the most efficient algorithm to be used. The choice of the data structure begins from the choice of an abstract data type (ADT). A well-designed data structure allows a variety of critical operations to be performed, using as few resources, both execution time and memory space, as possible. Data structure introduction refers to a scheme for organizing data, or in other words it is an arrangement of data in computer's memory in such a way that it could make the data quickly available to the processor for required calculations. A data structure should be seen as a logical concept that must address two fundamental concerns. 1. First, how the data will be stored, and 2. Second, what operations will be performed on it. As data structure is a scheme for data organization so the functional definition of a data structure should be independent of its implementation. The functional definition of a data structure is known as ADT (Abstract Data Type) which is independent of implementation. The way in which the data is organized affects the performance of a program for different tasks. Computer programmers decide which data structures to use based on the nature of the data and the processes that need to be performed on that data. Some of the more commonly used data structures include lists, arrays, stacks, queues, heaps, trees, and graphs. Classification of Data Structures: Data structures can be classified as Simple data structure Compound data structure Linear data structure Non linear data structure [Fig 1.1 Classification of Data Structures] Simple Data Structure: Simple data structure can be constructed with the help of primitive data structure. A primitive data 1