DI03016031 · Semester 3 · 5G scheme
Data Structures with Python
Notes and solutions following the Gujarat Technological University (GTU) syllabus for DI03016031. Independent material — not issued by the university.
Materials
Complete Book
The whole syllabus, unit by unit, written for the exam.
Complete Book
202 pages
Premium Preview · 15 pages
Problem Solver
Step-by-step solutions to typical problems.
Problem Solver
43 pages
Premium Preview · 6 pages
Slides
Lecture slides for revision.
Lecture slides (full course)
587 pages
Premium Preview · 10 pagesSlides (compact edition)
515 pages
Premium Preview · 10 pages
PYQ Solutions
Past university papers, fully solved.
Solved past papers — detailed answers
27 pages · English + ગુજરાતી
Premium Preview · 3 pages
Syllabus units
Unit 1: Basic Concepts of Data Structures
- 1.1 Data Structure Basic Concepts
- 1.2 Types of data structures
- 1.3 Analysis Terms (for the definitions purpose only):
- • Time Complexity, Space Complexity, Asymptotic Notations
- • Big 'O' Notation, Best case Time Complexity
- • Average case Time Complexity, Worst case Time Complexity
- 1.4 Python Specific Data Structures
- • List, Tuple, Set, Dictionary
- 1.5 Array in Python, import array, import numpy, Operations on Arrays, Arrays vs List
Unit 2: Basics of Object-Oriented Programming
- 2.1 OOP Concepts
- 2.2 Class and Object
- 2.3 Constructors
- 2.4 Types of methods
- • Instance method, Class method, static method
- 2.5 Data Encapsulation
- 2.6 Inheritance
- • Single, multiple, multi-level, hierarchical, hybrid
- 2.7 Polymorphism through inheritance
- 2.8 Abstraction - abstract class
Unit 3: Stack and Queues
- 3.1 Overview of Stack
- 3.2 Operations on Stack - Push, Pop
- 3.3 Implementation of Stack using List
- 3.4 Application of Stack
- • Infix, Prefix and Postfix Forms of Expressions
- • Evaluations of postfix expression
- • Recursive Functions (factorial, Fibonacci series)
- 3.5 Overview of Queue
- 3.6 Operations on Queue - Enqueue and Dequeue
- 3.7 Implementation of Queue using List
- 3.8 Limitation of Single Queue
- 3.9 Concepts of Circular Queue
- 3.10 Application of queue
- 3.11 Differentiate circular queue and simple queue
Unit 4: Linked List
- 4.1 Overview of Linked list
- 4.2 Types of Linked List
- 4.3 Basic operations on singly linked list:
- • Insertion of a new node in the beginning of the list
- • At the end of the list, after a given node, before a given node
- • Deleting the first and last node from a linked list
- • Count the number of nodes in linked list
- 4.4 Overview of circular linked list
- 4.5 Difference between circular linked list and singly linked list
- 4.6 Overview of doubly linked list
- 4.7 Applications of linked list
Unit 5: Searching and Sorting Methods
- 5.1 Searching an element into List:
- • Linear Search, Binary Search
- 5.2 Sorting Methods:
- • Bubble Sort, Selection Sort, Quick Sort, Insertion Sort, Merge Sort
Unit 6: Binary Trees
- 6.1 Binary trees: Complete Binary Tree
- 6.2 Basic Terms: level number, degree, in-degree and out-degree, leaf node
- 6.3 Binary Search Tree
- • Insertion of a node in binary tree
- • Deletion of a node in binary tree
- • Searching a node in binary tree
- 6.4 Tree Traversal
- • Inorder, Preorder, Postorder
- 6.5 Applications of binary tree
About this course
Development of application systems and software that use underlying architecture of machines efficiently and effectively requires the ability to use and manipulate various types of Data Structures and other constructs. This being a fundamental ability which is language neutral yet requires use of a language for its implementation. As far as data structures are concerned, the course covers Python dictionaries as well as classes and objects for defining user defined data types such as linked lists and binary search trees. This course is designed to develop an integrated ability to efficient software development and apply the knowledge to various application systems; hence this course is very important for IT diploma engineers.