Data Structures and Algorithms
- Linear and Non-Linear Data Structure
- Adjacency matrix and adjacency list implementation
- Web crawler – Breadth-First Search
- Maze problem
- Topological ordering
- Finding shortest path with topological ordering
- Detecting Cycles in a Directed Graph
- Array data structure
- Linked list data structure
- Doubly linked list
- Finding the Middle Node of a Linked List in Java
- Reversing the linked list in place (without using extra space)
- Understanding Stack Abstract Data Type (ADT)
- Queue Data Structure
- Java ArrayDeque
- Custom HashMap in Java
Tree and Graph
- Introduction to Graph
- Tree Data Structure – Introduction
- Breadth First Search Algorithm
- Depth First Search Algorithm
- Shortest path method – Dijkstra Algorithm
Sorting
- Bubble Sort in Java
- Insertion Sort in Java
- Selection Sort in Java
- Merge Sort in Java
- Sorting an array of 0s, 1s, and 2s – Dutch National Flag Algorithm
- Quick Sort in Java
Searching
Binary Tree
- Binary Tree in Java
- Traversal orders in a Binary Tree
- Recursive PreOrder Traversal of a Binary Tree in Java
- Iterative Preorder traversal of a Binary Tree in Java
- Recursive Inorder Traversal of a Binary Tree
- Iterative Inorder Traversal of a Binary Tree
- Recursive Postorder Traversal of a Binary Tree
- Iterative Postorder Traversal of a Binary Tree
- Level Order Traversal of Binary Tree
- Finding the Maximum Value in a Binary Tree (Recursive Approach)
- Binary Search Tree (BST)
- Inserting a Value into a Binary Search Tree (BST)
- Search in a Binary Search Tree (BST)
- Validating a Binary Search Tree (BST)
- Symmetric Tree