DAA Tutorial Index
DAA Tutorial
o DAA Tutorial
o DAA Algorithm
o Need of Algorithm
o Complexity of Algorithm
o Algorithm Design Techniques
Asymptotic Analysis
o Asymptotic Analysis
o Analyzing Algorithm Control Structure
Recurrence
o Recurrence Relation
o Recursion Tree Method
o Master Method
Analysis of Sorting
o Bubble Sort
o Selection Sort
o Insertion Sort
Divide and Conquer
o Introduction
o Max-Min Problem
o Binary Search
o Merge Sort
o Tower of Hanoi
Sorting
o Binary Heap
o Quick Sort
o Stable Sorting
Lower Bound Theory
o Lower bound Theory
Sorting in Linear Time
o Linear Time
o Counting Sort
o Bucket Sort
o Radix Sort
Hashing
o Hashing
o Hash Tables
o Hashing Method
o Open Addressing Techniques
o Hash Function
Binary Search Trees
o Binary Search Trees
Red Black Tree
o Red Black Tree
Dynamic Programming
o Dynamic Programming
o Divide & Conquer Method vs Dynamic Programming
o Fibonacci sequence
o Matrix Chain Multiplication
o Matrix Chain Multiplication Example
o Matrix Chain Multiplication Algorithm
o Longest Common Sequence
o Longest Common Sequence Algorithm
o 0/1 Knapsack Problem
Greedy Algorithm
o Introduction
o Activity Selection Problem
o Fractional Knapsack problem
o Huffman Codes
o Algorithm of Huffman Code
o Activity or Task Scheduling Problem
o Travelling Sales Person Problem
o Dynamic Programming vs Greedy Method
Backtracking
o Backtracking Introduction
o Recursive Maze Algorithm
o Hamiltonian Circuit Problems
o Subset Sum Problems
oN Queens Problems
MST
o MST Introduction
o MST Applications
o Kruskal's Algorithm
o Prim's Algorithm
Shortest Path
o Introduction
o Negative Weight Edges
o Representing Shortest Path
o Relaxation
o Dijkstra's Algorithm
o Bellman-Ford Algorithm
o Single Source Shortest Path in a directed Acyclic Graphs
All-Pairs Shortest Paths
o Introduction
o Floyd-Warshall Algorithm
o Johnson's Algorithm
Maximum Flow
o Flow networks and Flows
o Network Flow Problems
o Ford Fulkerson Algorithm
o Maximum bipartite matching
Sorting Networks
o Comparison Network
o Bitonic Sorting Network
o Merging Network
Complexity Theory
o Complexity Classes
o Polynomial Time Verification
o NP-Completeness
o Circuit Satisfiability
o 3-CNF Satisfiability
o Clique Problem
o Vertex Cover Problem
o Subset-Sum Problem
Approximation Algorithm
o Introduction
o Vertex Cover
o Travelling Salesman Problem
String Matching
o Introduction
o Naive String Matching Algorithm
o Rabin-Karp-Algorithm
o String Matching with Finite Automata
o Knuth-Morris-Pratt Algorithm
o Boyer-Moore Algorithm
Data Structures Index
DS Basics
o DS Tutorial
o DS Introduction
o DS Algorithm
o Ds Asymptotic Analysis
o DS Pointer
o DS Structure
DS Array
o Array
o 2D Array
DS Linked List
o Linked List
o Insertion at beginning
o Insertion at end
o Insertion after specified node
o Deletion at beginning
o Deletion at end
o Deletion after specified node
o Traversing
o Searching
o Doubly Linked List
o Insertion at beginning
o Insertion at end
o Insertion after specified node
o Deletion at beginning
o Deletion at end
o Deletion of node having given data
o Traversing
o Searching
o Circular Linked List
o Insertion at beginning
o Insertion at end
o Deletion at beginning
o Deletion at the end
o Traversing
o Searching
o Circular Doubly List
o Insertion at beginning
o Insertion at end
o Deletion at beginning
o Deletion at the end
DS Stack
o DS Stack
o Array Implementation
o Linked List Implementation
DS Queue
o DS Queue
o Array Implementation
o Linked List Implementation
o Circular Queue
DS Tree
o Tree
o Binary Tree
o Pre-order Traversal
o In-order Traversal
o Post-order Traversal
o Binary Search Tree
o Searching in BST
o Insertion in BST
o Deletion in BST
o AVL Tree
o Insertion in AVL Tree
o LL Rotation
o LR Rotation
o RL Rotation
o RR Rotation
o Deletion in AVL Tree
oB Tree
o B+ Tree
o Red Black Tree
DS Graph
o DS Graph
o Graph Implementation
o BFS Algorithm
o DFS Algorithm
o Spanning Tree
o Prim's Algorithm
o Kruskal's Algorithm
DS Searching
o Linear Search
o Binary Search
DS Sorting
o Bubble Sort
o Bucket Sort
o Comb Sort
o Counting Sort
o Heap Sort
o Insertion Sort
o Merge Sort
o Quick Sort
o Radix Sort
o Selection Sort
o Shell Sort
o Bitonic Sort
o Cocktail Sort
o Cycle Sort
o Tim Sort
Interview Questions
o DS Interview Questions
Singly Linked List Programs
o Program to create and display a singly linked list
o Program to create a singly linked list of n nodes and count the
number of nodes
o Program to create a singly linked list of n nodes and display it in
reverse order
o Program to delete a new node from the beginning of the singly
linked list
o Program to delete a new node from the middle of the singly linked
list
o Program to delete a node from the end of the singly linked list
o Program to determine whether a singly linked list is the palindrome
o Program to find the maximum and minimum value node from a
singly linked list
o Program to insert a new node at the middle of the singly linked list
o Program to insert a new node at the beginning of the singly linked
list
o Program to insert a new node at the end of the singly linked list
o Program to remove duplicate elements from a singly linked list
o Program to search an element in a singly linked list
o Program to sort the elements of the singly linked list
o Program to swap nodes in a singly linked list without swapping data
o Program to swap the last element of the singly linked list from the
first one
Doubly Linked List Programs
o Program to Convert a Given Binary Tree to Doubly Linked List
o Program to Create a Doubly Linked List From a Ternary Tree
o Program to Create a Doubly Linked List of N Nodes and Count the
Number of Nodes
o Program to Create a Doubly Linked List of N Nodes and Display it in
Reverse Order
o Program to Create and Display a Doubly Linked List
o Program to Delete a New Node From the Beginning of the Doubly
Linked List
o Program to Delete a New Node From the End of the Doubly Linked
List
o Program to Delete a New Node From the Middle of the Doubly
Linked List
o Program to Find the Maximum and Minimum Value Node From a
Doubly Linked List
o Program to Insert a New Node at the Beginning of the Doubly Linked
List
o Program to Insert a New Node at the End of Doubly Linked List
o Program to Insert a New Node at the Middle of Doubly Linked List
o Program to Remove Duplicate Elements From a Doubly Linked List
o Program to Rotate Doubly Linked List by N Nodes
o Program to Search an Element in a Doubly Linked List
o Program to Sort the Elements of the Doubly Linked List
Circular Linked List Programs
o Program to Create a Circular Linked List of N Nodes and Count the
Number of Nodes
o Program to Create a Circular Linked List of N Nodes and Display it in
Reverse Order
o Program to Create and Display a Circular Linked List
o Program to Delete a New Node From the Beginning of the Circular
Linked List
o Program to Delete a New Node From the End of the Circular Linked
List
o Program to Delete a New Node From the Middle of the Circular
Linked List
o Program to Find the Maximum and Minimum Value Node From a
Circular Linked List
o Program to Insert a New Node at the Beginning of the Circular
Linked List
o Program to Insert a New Node at the End of the Circular Linked List
o Program to Insert a New Node at the Middle of the Circular Linked
List
o Program to Remove Duplicate Elements From a Circular Linked List
o Program to Search an Element in a Circular Linked List
o Program to Sort the Elements of the Circular Linked List
Tree Programs
o Program to Calculate the Difference Between the Sum of the Odd
Level and Even Level Nodes of a Binary Tree
o Program to Construct a Binary Search Tree and Perform Deletion
and Inorder Traversal
o Program to Convert Binary Tree to Binary Search Tree
o Program to Determine Whether all Leaves are at Same Level
o Program to Determine Whether two Trees are Identical
o Program to Find Maximum Width of a Binary Tree
o Program to Find the Largest Element in a Binary Tree
o Program to Find the Maximum Depth or Height of a Tree
o Program to Find the Nodes Which are at the Maximum Distance in a
Binary Tree
o Program to Find the Smallest Element in a Binary Tree
o Program to Find the Sum of all the Nodes of a Binary Tree
o Program to Find the Total Number of Possible Binary Search Trees
with N Keys
o Program to Implement Binary Tree using the Linked List
o Program to Search a Node in a Binary Tree