Data Structures and Algorithms - C and Python
Data Structures and Algorithms - C and Python
● Introduction
○ Data Structures
○ Algorithm
○ Types of Data Structures and Algorithms
● Recursion
○ Working of Recursion
○ Recursive vs Iterative Solutions
○ 3 steps of recursion
● Big O Notation
○ Analogy and Time complexity
○ Big O, Big Theta and Big Omega
○ Time and space complexity
● Arrays
○ Insertion, Traversal, Searching and deletion
● LinkedList
○ Linked List vs Arrays
○ Linked List in the Memory
○ Types of Linked List
■ Singly Linked List
■ Doubly Linked List
■ Circular Linked List
■ Circular Doubly Linked List
○ Basic operations in all types
○ Time and spaces complexities of linked list
● Stack
○ Create Stack using Linked List
○ Create Stack using array
○ Time and Space Complexity of Stack
● Queue
○ Queue using array
○ Circular Queue
○ Priority Queue
○ Queue - Linked List
○ Time and Space complexity of Queue
● Tree
○ Tree Terminology
○ Types of Binary Tree
○ Insertion and deletion of nodes
○ Traversal - BFS and DFS
○ Time and Space complexity of Binary Tree
○ Binary Search Tree
○ Time and Space complexity of BST
○ AVL Tree
■ Common Operations on AVL Trees
■ Time and Space complexity of AVL Tree
○ Binary Heap
■ Common operations (Creation, Peek, sizeofheap) on Binary Heap
■ Time and space complexity of Binary Heap
● Hashing
● Sort Algorithms
○ Bubble sort
○ Selection sort
○ Insertion sort
○ Bucket sort
○ Merge sort
○ Quick sort
○ Heap sort
○ Time complexity of all sort
● Searching Algorithms
○ Linear search
○ Binary search
○ Jump search
● Graph Algorithms
○ Graph Terminology
○ Types of Graph
○ Graph Representation
● Graph Traversals
○ BFS
○ DFS
● Topological Sort Algorithm
● Single Source Shortest Path Problem (SSSPP)
● Graph Algorithm
○ Dijkstra's Algorithm
○ Bellman Ford Algorithm
○ All pairs shortest path problem
○ Floyd Warshall Algorithm
● Minimum Spanning Tree
● Kruskal Algorithm
● Prim's Algorithm
● Greedy Algorithm
○ Activity Selection
○ Coin Change
○ Fractional Knapsack
● Divide and Conquer
○ Number Factor
○ House Robber
○ Zero One Knapsack problem
○ Longest Common Sequence Problem
○ Longest Palindromic Subsequence Problem
○ Minimum cost to reach the Last cell problem
● Dynamic Programming
○ Number Factor
○ House Robber
○ Zero One Knapsack problem
● Backtracking
○ N - Queens Problem
Resources:
● Udemy - The Complete Data Structures and Algorithms Course
○ Link -
https://www.udemy.com/course/data-structures-and-algorithms-bootcamp-i
n-python/
○ https://www.udemy.com/course/datastructurescncpp/
● https://www.hackerearth.com/practice/data-structures/arrays/1-d/tutorial/
● https://www.studytonight.com/data-structures/introduction-to-data-structures
● https://www.youtube.com/c/WilliamFiset-videos/playlists
● Practice:
○ https://www.hackerrank.com/interview/interview-preparation-kit
○ https://www.hackerrank.com/domains/data-structures