Data Structures & Algorithms
- Description
- Curriculum
- Reviews
Data Structures are the programmatic way of storing data so that data can be used efficiently. Almost every enterprise application uses various types of data structures in one or the other way. This tutorial will give you a great understanding on the Data Structures needed to understand the complexity of enterprise-level applications and the need of algorithms, and data structures. We will also be solving lots and lots of questions from websites like LeetCode, CodingBat, and HackerRank to improve our understanding and problem-solving skills.
-
1Basic Python Crash CourseText lesson
◆ Please refer to Advance Python Syllabus for this
➔ Intro to Algorithms using Simple Programs/Concepts :
◆ Narcissistic Number
◆ Reversing a Number
◆ Making a Tic Tac Toe Game using Dictionaries
◆ Fibonacci Series
◆ Recursion -
2Algorithm Analysis and Big OText lesson
◆ Introduction to Big O notation
◆ Time complexity
◆ Space complexity
◆ Analysis of iterative algorithm
◆ Analysis of recursive algorithm
◆ Analysis of common loops
◆ Examples -
3Data Structures and their ImplementationText lesson
◆ Array
➢ Left rotation of array by 1
➢ Left rotation of array by d places
➢ Maximum consecutive 1s
➢ Maximum difference problem
➢ Sliding window technique
➢ More problems -
4DictionariesText lesson
➢ Replace words from dictionary
➢ Dictionary with maximum count of pairs
➢ Convert dictionary to k-sized dictionary
➢ All substrings frequency in a string
➢ Practice problems -
5Linked ListsText lesson
➢ Implementation in python
➢ Comparison with array
➢ Detecting loops
➢ Deleting nth node in linked list
➢ Iterative and recursive methods to reverse a linked list.
➢ Merge two sorted linked lists
➢ Segregating even odd nodes of linked list
➢ Practice problems -
6StacksText lesson
➢ Implementation
➢ Applications
➢ Balanced parenthesis
➢ Previous greater element
➢ Next greater element
➢ Practice problems -
7QueueText lesson
➢ Implementation
➢ Stack using queue
➢ Reversing a queue
➢ Practice problems
➢ Dequeue -
8TreesText lesson
➢ Application
➢ Binary Tree
➢ Tree traversals(inorder, postorder, preorder, level order)
➢ Size of binary tree
➢ Convert binary tree into doubly linked list
➢ Check for balanced binary tree
➢ Binary Search Tree
➢ Insertion, deletion in BST
➢ Self balancing BST
➢ Practice problems -
9GraphsText lesson
➢ Graph representation
➢ Adjacency matrix
➢ Breadth-First Search
➢ Depth-first search
➢ Shortest path
➢ Prims Algorithm
➢ Dijkstra’s shortest path algorithm
➢ Bellman-Ford shortest path algorithm
➢ Bridges in graph
➢ Practice problems -
10HeapsText lesson
➢ Binary heap
➢ Heap sort
➢ Priority Queue
➢ Sort K-sorted array
➢ K-largest elements
➢ Merge k-sorted arrays
➢ Practice problems -
11Searching and Sorting Algorithms and their ImplementationText lesson
◆ Sequential Search
◆ Binary Search
◆ Insertion Sort
◆ Selection Sort
◆ Bubble Sort
◆ Merge Sort
◆ Quick Sort
◆ Practice problems on all the sorting techniques -
12Algorithms TechniqueText lesson
◆ Greedy Approach
➢ Introduction
➢ Activity selection problem
➢ Fractional knapsack
➢ Job sequencing problem
➢ Practice problems
◆ Dynamic Programming
➢ Memoization
➢ Tabulation
➢ Longest common subsequence
➢ Coin change count combinations
➢ Maximum coins to make a value
➢ Optimal strategy for a game
➢ Maximum jumps to reach the end
➢ 0-1 knapsack problem
➢ More problems
◆ Backtracking
➢ Introduction
➢ Rat in a maze
➢ N Queen problem
➢ Sudoku problem
➢ More problems
