 ##### Data Structure & Algorithm

This Course includes

• 15.5 Hrs Video lectures
• Personal Mentorship
• Course By Shibaji Paul

### Tutedude

Get Started with Tutedude

#### OR

Enter Your registered Email your account is associated with and we will send you otp to your email

### Otp confirm

Enter the 5 digit otp sent to your mobile number.

### Tutedude

Continue with Tutedude

#### OR

New user?Register

# Data Structures & Algorithms

Shibaji Paul

English(Indian)

### Course By:

Shibaji Paul

You will learn the following in this course: (All implemented using C programming)

1. Fundamental of Data Structure concept

2. Why we need Data Structures

3. Stack - Idea, definition, algorithm, implementations.

4. Using Stack - Parenthesis checking, Polish Notation, Infix to postfix conversion and evaluation.

5. FIFO Queue - Idea, definition, algorithm, implementation.

6. Circular Queue using array - Idea, definition, algorithm, implementation.

7. Double ended queue using array - Idea, definition, algorithm, implementation.

8. Linked List - Idea, definition, why we need linked list. Comparison with array.

9. Singly Linked List - Development of algorithm for various operations and then Implementation of each of them

10. Creating Stack and Queue using Singly Linked list - Implementation.

11. Doubly Linked List - Idea, definition, algorithm of various operations and implementations.

12. Circular Linked List - Idea, definition, algorithm and implementations.

14. Calculating efficiency of algorithms, Worst Case (Big Oh), Average Case (Big Theta) and Best case (Big omega) complexities. How to calculate them for different algorithms.

15. Binary Searching

16. Recursion in detail. Example program using recursion and the critical comparison between Recursive approach and Iterative approach of problem solving.

17. Binary Tree, definition, traversal (In, Pre and Post Order), Binary Search Tree implementation.

18. Heap data structure, definition, heap insertion, deletion, heap adjust, Heapify and heap sort.

## Curriculum

✔14section ✔ 122lectures ✔ 15h 42m total length

• 2. Introduction of Stack
• 3. Some practical example where Stack is used.
• 4. Basic Algorithm for Stack data structure.
• 5. Implementation of Stack.
• 6. Some more explanations about the use of Pointers
• 7. Building a menu for the implementation.
• 8. Make the Stack dynamic.
• 9. Make the stack more dynamic.
• 10. Stack In Action - Decimal to binary conversion
• 11. Stack In Action - Reversing the content of a text file.

#### Step-by-step developing a paranthesis checking program using stack.

• 12. Understanding the problem.
• 13. Developing the algorithm for bracket checking.
• 14. The explanation of the algorithm that we develop for parenthesis checking
• 15. Implementation of parenthesis checking program - Part 1
• 16. Implementation of parenthesis checking program - Part 2

#### Polish notation and Reverse Polish Notation

• 17. Introduction to Polish Notation
• 18. Understanding precedence of operators, conversion idea - infix to prefix/postfix
• 19. How to evaluate Polish or Reverse Polish Notations.
• 20. Algorithm for evaluating Postfix expression.
• 21. Implementing evaluation of Postfix expression with C Programming language.
• 22. Discussion on how to convert Infix to Postfix.
• 23. Infix to Postfix conversion - More examples with procedure
• 24. Elaboration of the procedure that converts infix to postfix.
• 25. Writing the algorithm for converting Infix expression to equivalent Postfix.
• 26. Dry running the Algorithm for converting Infix to Postfix.
• 27. Starting the implementation, lets first develop the precedence checker function.
• 28. Writing the C function for converting Infix to Postfix.
• 29. Combine the conversion and evaluation function in a single program.

• 30. Introduction to Queue
• 31. The FIFO queue implementation idea using Array - Understanding with animation.
• 32. Algorithm for FIFO Queue.
• 33. Dry run the FIFO queue algorithm.
• 34. Implementation of FIFO Queue.
• 35. A menu for the Queue program.
• 36. The loophole in our implementation of FIFO Queue.
• 37. Understanding the loophole, why that happened?
• 38. Introduction to Circular Queue.
• 39. Circular queue operations. How to perform enqueue and dequeue operations.
• 40. Algorithm for Circular Queue operations.
• 41. Implementation of Circular Queue.
• 42. Introduction to Double Ended Queue
• 43. Algorithm development for Double Ended Queue operations.
• 44. Dry run of the DEQ algorithm.
• 45. Implementation of Double Ended Queue.

• 46. Introduction to Linked List.
• 47. Definition of Linked List, conception of Node, understanding basic terminologies
• 48. Categories of Linked List - Singly, Doubly and Circular Linked List.

• 49. Understanding the 'struct' type we need for implementing singly linked list.
• 50. The Singly Linked List operations - starting the program.
• 51. Developing Insert At Tail operation - Add a new node as last node.
• 52. Implementing Insert at Head - Add a new node as the first node.
• 53. Traversing the linked list - printing the content of each node.
• 54. Printing the detail of each node of the linked list.
• 55. Compiling and executing the program written so far.
• 56. Developing find operation - to search for a target in the linked list.
• 58. Creating Linked List from randomly generated integer numbers.
• 59. Delete first operation to delete the first node.
• 60. Delete last operation to delete the last node.
• 61. Delete a node that contain a target data.
• 62. Reverse the linked list.
• 63. Traverse the singly linked list recursively.
• 64. Implementation of Stack using singly linked list.
• 65. Implementation of Queue using Linked List

• 66. Introduction to Doubly Linked List.
• 67. Starting the program to implement various operations for Doubly Linked List.
• 68. Implementation of Add First method to add a new node as the first node.
• 69. AddLast implementation to add a new node as the last node.
• 70. Find and Insert After and Insert Before operation.
• 71. Deleting a node - delete first, delete last and delete a target.
• 72. Double Ended Queue using doubly linked list.

• 73. Introduction to Circular Linked List.
• 74. Insert operation for Circular Linked List.
• 75. Delete Node operation.
• 76. Developing find and print operation.

#### Efficiency of Algorithm

• 77. Efficiency of Algorithm - Introduction to the concept.
• 78. Mathematical Approach for estimating the efficiency.
• 79. Big-Oh notation - estimating worst case complexity.
• 80. How to calculate Big-Oh for a given algorithm explanation with example.
• 81. Big-Oh continue.
• 82. Some more example on calculating Big-Oh
• 83. Idea of Best case complexity - Big Omega notation.
• 84. Idea of Average case complexity - Big theta notation.

#### Binary Search

• 85. Understand binary search procedure.
• 86. Implementation and worst case complexity of Binary Search.

#### Recursion

• 87. Introduction to the Section.
• 89. When and how to terminate - the base condition of Recursion.
• 90. Let us go into deep of the call.
• 91. Recursion Example 1 - Juggler Sequence.
• 92. Recursion Example 2 - Finding Factorial.
• 93. Recursion Example 3 - Binary Search
• 94. Recursion Example 4 - Decimal to Binary
• 95. Calling a function - Operating System creates stack.
• 96. When there is no need of stack.
• 97. Tail Recursion
• 98. Recursion Vs Iteration - Part 1
• 99. Recursion Vs Iteration - Part 2 When recursive approach is better than iteration

#### Additional Learning - Binary Tree and Binary Search Tree

• 100. Introduction to Binary Tree.
• 101. Understanding different terminologies related with Binary tree.
• 102. How to traverse a Binary Tree - In-order traversal
• 103. Traversing a Binary tree using Pre-order traversal algorithm.
• 104. Traversing a binary tree using Post-order traversal algorithm.
• 105. Construction of a Binary Tree from given traversal list.
• 106. How to define structure of a Node for a Binary Tree.
• 107. Let us understand Binary Search Tree.
• 108. Implementation of insert operation for a Binary Search Tree.
• 109. Implementation of In-Order traversal for a Binary Search Tree.
• 110. Implementation of pre and post order traversal.
• 111. Implementation of Binary Search for a Binary Search Tree.

#### Heap

• 112. Introduction to this Section.
• 113. Concept of Binary Tree Data Structure (Revisited)
• 114. Almost Complete Binary Tree
• 115. Representation of Almost Complete Binary Tree Using 1-D Array
• 116. Formal Definition of Heap
• 117. Insertion into Heap
• 118. Delete an element from Heap
• 120. Heapify operation - Constructing heap from an arbitrary one dimensional array.
• 121. Heap Sort Algorithm
• 122. Implementation of Heap Sort using C Language.

## Overview

• ✔ Recursion, Stack, Polish Notations, infix to postfix, FIFO Queue, Circular Queue, Double Ended Queue, Linked List - Linear, double and Circular - all operations, Stack and Queue using Linked List

• ✔ Using Stack - checking parenthesis in an expression

• ✔ What is a FIFO Queue, understanding Queue operations - Insert and delete, implementing FIFO Queue

• ✔ Concept of Double ended queue, logic development and implementation of double ended queue.

• ✔ Singly Linked List - developing algorithms for various methods and then implementing them using C programming

• ✔ Circular Linked List - developing algorithm of various methods and then implementing them using C programming

• ✔ Recursion, concept of Tail recursion, Recursion Vs Iteration.

• ✔ What is stack, algorithms for Push and Pop operation. Implementation of Stack data structure using C.

• ✔ Using Stack - Understanding Polish notations, algorithm and implementation of infix to postfix conversion and evaluation of postfix expression

• ✔ Limitations of FIFO queue, concept of Circular Queue - Implementation of Circular queue.

• ✔ Concept of Linked List - definition, why we need linked list.

• ✔ Doubly Linked List - developing algorithm of various methods and then implementing them using C programming

• ✔ How to estimate time complexity of any algorithm. Big Oh, Big Omega and Big Theta notations.

• ✔ Binary Tree, definition, traversal (in-order, pre-order and post-order), binary search tree, implementation.

##### Best Content:

You will get best quality content in this course. After getting through this course your fundamentals concepts will be super clear.

##### Certificate:

Get certified by Tutedude. You can ask for the certificate after completing the course in chat section.

##### Live Doubt Solving:

If you have any doubt while learning, just type your doubt on the chat option and you will get connected to the mentor as soon as possible to clear all your doubts

## Who is this course for

1. ✔ Students who want to prepare themselve for interview of top companies like Google, Amazon or Microsoft.

2. ✔ Students who are looking forward to be an efficient programmer, who are having data structures in their syllabus.

3. ✔ Students who wants to have in dept knowledge about the Stack, Queue and Linked List, Efficiency of Algorithm, Binary Tree, Heap