DSA With Java

Concepts Covered in Data Structure

The following are some of the most important Java fundamental topics for a novice to learn:

How can we help you?

For queries and questions, contact us Coding Thinker

DSA With Java

Introduction

  • Analysis of Algorithm

    1. Background analysis through a Program and its functions.
  • Order of Growth

    1. A mathematical explanation of the growth analysis through limits and functions.
    2. A direct way of calculating the order of growth
  • Asymptotic Notations

      1. Best, Average and Worst case explanation through a program.
  • Big O Notation

      1. Graphical and mathematical explanation.
      2. Calculation
      3. Applications at Linear Search
  • Omega Notation

      1. Graphical and mathematical explanation.
      2. Calculation.
  • Theta Notation

      1. Graphical and mathematical explanation.
      2. Calculation.
  • Analysis of common loops

      1. Single, multiple and nested loops
  • Analysis of Recursion

      1. Various calculations through Recursion Tree method
  • Space Complexity

      1. Basic Programs
      2. Auxiliary Space
      3. Space Analysis of Recursion
      4. Space Analysis of Fibonacci number
  • Practice Problems

    1. This section contains many practice problems for the users which are considered important and must-do as far as Data Structure and Algorithm is concerned.

Mathematics

  • Mathematics

      1. Count Digits
      2. Palindrome Numbers
      3. Factorial of Numbers
      4. GCD of Two Numbers
      5. LCM of Two Numbers
      6. Check for Prime
      7. Prime Factors
      8. Sieve of Eratosthenes
      9. Computing Power
  • Practice Problems

    1. This section contains many practice problems for the users which are considered important and must-do as far as Data Structure and Algorithm is concerned.

Bit Magic

  • Bitwise Operators in C++
      1. Operation of AND, OR, XOR operators
      2. Operation of Left Shift, Right Shift and Bitwise Not
  • Bitwise Operators in Java
      1. Operation of AND, OR
      2. Operation of Bitwise Not, Left Shift
      3. Operation of Right Shift and unsigned Right Shift
  • Problem(With text Solutions): Check Kth bit is set or not
      1. Method 1: Using the left Shift.
      2. Method 2: Using the right shift
  • Problem(With text Solutions): Count Set Bits
      1. Method 1: Simple method
      2. Method 2: Brian and Kerningham Algorithm
      3. Method 3: Using Lookup Table
  • Problems(With text Solutions):
    1. To check whether a number is a power of 2 or not
    2. Odd occurrences in an array.
    3. Two numbers having odd occurrences in an array.
    4. Generate power set using bitwise operators.
  • Practice Problems
  1. This section contains many practice problems for the users which are considered important and must-do as far as Data Structure and Algorithm is concerned.

Recursion

  • Introduction to Recursion

  • Applications of Recursion

  • Writing base cases in Recursion

      1. Factorial
      2. N-th Fibonacci number
  • Various problems on Recursion(With text Solutions)
      1. Print n to 1
      2. Print 1 to n
      3. Tail Recursion
      4. Checking Palindrome
      5. Sum of digits
      6. Rod cutting
      7. Subsets of a set
      8. Tower of Hanoi Problem
      9. Josephus Problem
  • Practice Problems

    1. This section contains many practice problems for the users which are considered important and must-do as far as Data Structure and Algorithm is concerned.

Arrays

  • Introduction and Advantages

  • Types of Arrays
      1. Fixed-sized array
      2. Dynamic-sized array
  • Operations on Arrays

    1. Searching
    2. Insertions
    3. Deletion
    4. Arrays vs other DS
    5. Reversing – Explanation with complexity
  • Problems(With text Solutions)

      1. Left Rotation of the array by 1
      2. Check if Sorted
      3. Left Rotation of the array by D places
      4. Leaders in an Array
      5. Maximum Difference Problem
      6. Frequencies in Sorted Array
      7. Stock Buy and Sell Problem
      8. Trapping Rainwater Problem
      9. Maximum Consecutive 1s
      10. Maximum Subarray Sum
      11. Longest Even-Odd Subarray
      12. Maximum Circular sum subarray.
      13. Majority Element
      14. Minimum Consecutive Flips
      15. Sliding Window Technique
      16. Prefix Sum Technique
  • Practice Problems

    1. This section contains many practice problems for the users which are considered important and must-do as far as Data Structure and Algorithm is concerned.

Searching

  • Binary Search Iterative and Recursive

  • Binary Search and various associated problems(With text Solutions)
      1. Index of First Occurence in Sorted Array
      2. Index of Last Occurence in Sorted Array
      3. Count of occurrences of x in sorted element
      4. Count of 1s in a binary sorted array
      5. Find an element in sorted and rotated array
      6. Peak element
      7. Find an element in an infinite sized sorted array
      8. The square root of an integer
  • Two Pointer Approach Problems(With text Solutions)

    1. Find pair in an unsorted array which gives sum X
    2. Find pair in a sorted array which gives sum X
    3. Find triplet in an array which gives sum X
  • Problems(With text Solutions)

      1. Median of two sorted arrays
      2. Majority Element
  • Practice Problems

    1. This section contains many practice problems for the users which are considered important and must-do as far as Data Structure and Algorithm is concerned.

Sorting

  • Implementation of C++ STL sort() function in Arrays and Vectors

  1. Time Complexities
  • Sorting in Java

  • Arrays.sort() in Java

  • Collection.sort() in Java

  • Stability in Sorting Algorithms

  1. Examples of Stable and Unstable Algos
  • Bubble Sort

  • Selection Sort

  • Insertion Sort

  • Merge Sort

  • Problems(With text Solutions)

      1. Intersection of 2 sorted arrays
      2. Union of 2 sorted arrays
      3. Count Inversions in arrays
  • Partitions(With text Solutions)

      1. Naive
      2. Lomuto
      3. Hoare
  • Quick Sort

      1. Using Lomuto and Hoare
      2. Time and Space analysis
      3. Choice of Pivot and Worst case
      4. Tail call elimination
  • Problems(With text Solutions)

    1. Kth Smallest element
    2. Chocolate Distribution Problem
    3. Sorting arrays with 2 and3 types of elements
    4. Merge Overlapping Intervals
    5. Meeting the Maximum Guests
  • Heap Sort

  • Cycle Sort

  • Counting Sort

  • Radix Sort

  • Bucket Sort

  • Overview of Sorting Algorithms

  • Practice Problems

  1. This section contains many practice problems for the users which are considered important and must-do as far as Data Structure and Algorithm is concerned.

Matrix

  • Introduction to Matrix in C++ and Java
  • Multidimensional Matrix
  • Pass Matrix as Argument
  • Printing matrix in a snake pattern
  • Transposing a matrix
  • Rotating a Matrix
  • Check if the element is present in a row and column-wise sorted matrix.
  • Boundary Traversal
  • Spiral Traversal
  • Matrix Multiplication
  • Search in row-wise and column-wise Sorted Matrix
  • Practice Problems
    1. This section contains many practice problems for the users which are considered important and must-do as far as Data Structure and Algorithm is concerned.

Hashing

  • Introduction and Time complexity analysis

  • Application of Hashing

  • Discussion on Direct Address Table

  • Working and examples on various Hash Functions

  • Introduction and Various techniques on Collision Handling

  • Chaining and its implementation

  • Open Addressing and its Implementation

  • Chaining V/S Open Addressing

  • Double Hashing

  • C++

      1. Unordered Set
      2. Unordered Map
  • Java

      1. HashSet
      2. HashMap
  • Problems(With text Solutions):

      1. Count Distinct Elements
      2. Count of the frequency of array elements
      3. The intersection of two arrays
      4. Union of two unsorted arrays
      5. Pair with given sum in an unsorted array
      6. Subarray with zero-sum
      7. Subarray with given sum
      8. Longest subarray with a given sum
      9. Longest subarray with an equal number of 0’s and 1’s
      10. Longest common span with the same sum in a binary array
      11. Longest Consecutive Subsequence
      12. Count Distinct elements in every window
      13. More than n/k Occurences
      14. Optimized More than n/k Solution
  • Practice Problems

    1. This section contains many practice problems for the users which are considered important and must-do as far as Data Structure and Algorithm is concerned.

Strings

  • Discussion of String DS

  • Strings in CPP

  • Strings in Java

  • Problems(With text Solutions):

    1. Given a string, check if they are an anagram of each other.
    2. Given a string, find the leftmost character that repeats.
    3. Given a string, find the leftmost character that does not repeat.
    4. Given a string, find the lexicographic rank of it in O(n) time.
    5. Implementation of the previously discussed lexicographic rank problem.
    6. Given a text string and a pattern string, find if a permutation of the pattern exists in the text.
    7. Given two strings, check if they are rotations of each other or not.
    8. Various Pattern Searching Algorithms.
    9. Palindrome Check
  • Rabin Karp Algorithm

  • KMP Algorithm

  • Practice Problems

    1. This section contains many practice problems for the users which are considered important and must-do as far as Data Structure and Algorithm is concerned.

Linked List

  • Introduction

      1. Implementation in CPP
      2. Implementation in Java
      3. Comparison with Array DS
  • Doubly Linked List

  • Circular Linked List

  • Loop Problems

      1. Detecting Loops
      2. Detecting loops using Floyd cycle detection
      3. Detecting and Removing Loops in Linked List
  • Problems(With text Solutions):

    1. Middle of Linked List
    2. Nth node from the end of linked list
    3. Deleting a Node without accessing Head pointer of Linked List
    4. An iterative method to Reverse a linked list
    5. Recursive method to reverse a linked list
    6. Reverse in group of size k
    7. Recursive Traversal in a Singly Linked List
    8. Segregating even-odd nodes of linked list
    9. The intersection of two linked list
    10. Pairwise swap nodes of linked list
    11. Clone a linked list using a random pointer
    12. LRU Cache Design
    13. Merge two Sorted Linked Lists
    14. Palindrome Linked List
    15. Recursive Traversal in a Singly Linked List
    16. Remove Duplicates from a Sorted Singly Linked List
    17. Sorted Insert in a Singly Linked List
    18. Reverse a Doubly Linked List
  • Practice Problems

    1. This section contains many practice problems for the users which are considered important and must-do as far as Data Structure and Algorithm is concerned.

Stack

  • Understanding the Stack data structure

  • Applications of Stack

  • Implementation of Stack in Array and Linked List

      1. In C++
      2. In Java
  • Problems(With text Solutions):

      1. Balanced Parenthesis
      2. Two stacks in an array
      3. K Stacks in an array
      4. Stock span problem with variations
      5. Previous Greater Element
      6. Next Greater Element
      7. Largest Rectangular Area in a Histogram
  • Understanding getMin() in Stack with O(1)

  • Infix, Prefix and Postfix Introduction

    1. Infix to Postfix (Simple Solution)
    2. Infix to Postfix (Efficient Solution)
    3. Evaluation of Postfix
    4. Infix to Prefix (Simple Solution)
    5. Infix to Prefix (Efficient Solution)
    6. Evaluation of Prefix
  • Practice Problems

    1. This section contains many practice problems for the users which are considered important and must-do as far as Data Structure and Algorithm is concerned.

Queue

  • Introduction and Application

  • Implementation of the queue using array and LinkedList

      1. In C++ STL
      2. In Java
      3. Stack using queue
  • Problems(With text Solutions)

      1. Reversing a Queue
      2. Generate numbers with given digits
      3. First Circular Tour
  • Practice Problems

    1. This section contains many practice problems for the users which are considered important and must-do as far as Data Structure and Algorithm is concerned.

Deque

  • Introduction and Application

  • Implementation

      1. In C++ STL

      2. In Java
  • Problems(With text Solutions)

      1. Maximums of all subarrays of size k
      2. ArrayDeque in Java
      3. Design a DS with min max operations
  • Practice Problems

  1. This section contains many practice problems for the users which are considered important and must-do as far as Data Structure and Algorithm is concerned.

Tree

  • Introduction

      1. Tree
      2. Application
      3. Binary Tree
      4. Tree Traversal
  • Implementation of:

      1. Inorder Traversal
      2. Preorder Traversal
      3. Postorder Traversal
      4. Level Order Traversal (Line by Line)
      5. Tree Traversal in Spiral Form
  • Problems(With text Solutions):

      1. Size of Binary Tree
      2. Maximum in Binary Tree
      3. Height of Binary Tree
      4. Print Nodes at K distance
      5. Print Left View of Binary Tree
      6. Children Sum Property
      7. Check for Balanced Binary Tree
      8. Maximum Width of Binary Tree
      9. Convert Binary Tree to Doubly Linked List
      10. Construct Binary Tree from Inorder and Preorder
      11. Tree Traversal Spiral Form
      12. The diameter of a Binary Tree
      13. LCA problem with an efficient solution
      14. Burn A Binary Tree from a Leaf
      15. Count Nodes in a complete Binary Tree
      16. Serialize and Deserialize a Binary tree
      17. Iterative Inorder Traversal
      18. Iterative Preorder Traversal (Simple)
      19. Iterative Preorder Traversal (Space Optimized)
  • Practice Problems

  1. This section contains many practice problems for the users which are considered important and must-do as far as Data Structure and Algorithm is concerned.

Binary Search Tree

  • Background, Introduction and Application

  • Implementation of Search in BST

      1. In CPP
      2. In Java
  • Insertion in BST

      1. In CPP
      2. In Java
  • Deletion in BST

      1. In CPP
      2. In Java
  • Floor in BST

      1. In CPP
      2. In Java
  • Self Balancing BST

  • AVL Tree

  • Red Black Tree

  • Set in C++ STL

  • Map in C++ STL

  • BST Introduction

  • TreeSet in java

  • TreeMap in Java

  • Problems(With text Solutions):

      1. The ceiling of a key in BST
      2. Ceiling on the left side in an array
      3. Find Kth Smallest in BST
      4. Check for BST
      5. Fix BST with Two Nodes Swapped
      6. Pair Sum with given BST
      7. Vertical Sum in a Binary Tree
      8. Vertical Traversal of Binary Tree
      9. Top View of Binary Tree
      10. Bottom View of Binary Tree
  • Practice Problems

  1. This section contains many practice problems for the users which are considered important and must-do as far as Data Structure and Algorithm is concerned.

Heap

  • Introduction & Implementation

  • Binary Heap

      1. Insertion
      2. Heapify and Extract
      3. Decrease Key, Delete and Build Heap
  • Heap Sort

  • Priority Queue in C++

  • PriorityQueue in Java

  • Problems(With text Solutions):

      1. Sort K-Sorted Array
      2. Buy Maximum Items with Given Sum
      3. K Largest Elements
      4. Merge K Sorted Arrays
      5. Median of a Stream
  • Practice Problems

  1. This section contains many practice problems for the users which are considered important and must-do as far as Data Structure and Algorithm is concerned.
  •  

Graph

  • Introduction to Graph

  • Graph Representation

      1. Adjacency Matrix
      2. Adjacency List in CPP and Java
      3. Adjacency Matrix VS List
  • Breadth-First Search

      1. Applications
  • Depth First Search

    1. Applications
  • Problems(With text Solutions):
      • Shortest Path in an Unweighted Graph
      • Detecting Cycle
      • In the Undirected Graph
      • In the Directed Graph
      • Topological Sorting
      • Kahn’s BFS Based Algorithm
      • DFS Based Algorithm
  • Shortest Path in Directed Acyclic Graph

  • Prim’s Algorithm/Minimum Spanning Tree

      1. Implementation in CPP
      2. Implementation in Java
  • Dijkstra’s Shortest Path Algorithm

      1. Implementation in CPP
      2. Implementation in Java
  • Bellman-Ford Shortest Path Algorithm

  • Kruskal’s Algoritm

  • Kosaraju’s Algorithm

  • Articulation Point

  • Bridges in Graph

  • Tarjan’s Algorithm

  • Practice Problems

    1. This section contains many practice problems for the users which are considered important and must-do as far as Data Structure and Algorithm is concerned.

Greedy

  • Introduction

  • Activity Selection Problem

  • Fractional Knapsack

  • Job Sequencing Problem

  • Huffman Coding

  • Practice Problems

    1. This section contains many practice problems for the users which are considered important and must-do as far as Data Structure and Algorithm is concerned.

Back Sectioning

  • Concepts of Back Sectioning

  • Rat In a Maze

  • N Queen Problem

  • Sudoku Problem

  • Practice Problems

    1. This section contains many practice problems for the users which are considered important and must-do as far as Data Structure and Algorithm is concerned.

Dynamic Programming

  • Introduction

  • Dynamic Programming

      1. Memoization
      2. Tabulation
  • Problems(With text Solutions):

    1. Longest Common Subsequence
    2. Coin Change Count Combinations
    3. Edit Distance Problem
      • Naive Approach
      • DP Approach
    4. Longest Increasing Subsequence Problem
      • Naive Approach
      • Efficient Approach
    5. Maximum Cuts
    6. Minimum coins to make a value
    7. Minimum Jumps to reach at the end
    8. 0-1 knapsack problem
      • Naive Approach
      • Efficient Approach
    9. Optimal Strategy for a Game
    10. Variation of Longest Common Subsequence
    11. Variation of Longest Increasing Subsequence
    12. Egg Dropping Problem
    13. Count BST with nkeys
    14. Maximum Sum with No Consecutive
    15. Subset Sum Problem
    16. Matrix Chain Multiplication
    17. Palindrome Parititioning
  • Practice Problems

    1. This section contains many practice problems for the users which are considered important and must-do as far as Data Structure and Algorithm is concerned.

Trie

  • Introduction

      1. Representation
      2. Search
      3. Insert
      4. Delete
  • Count Distinct Rows in a Binary Matrix

  • Practice Problems

    1. This section contains many practice problems for the users which are considered important and must-do as far as Data Structure and Algorithm is concerned.

Segment Tree

  • Introduction

  • Construction

  • Range Query

  • Update Query

  • Practice Problems

    1. This section contains many practice problems for the users which are considered important and must-do as far as Data Structure and Algorithm is concerned.

Disjoint Set

  • Introduction

  • Find and Union Operations

  • Union by Rank

  • Path Compression

 

  • Kruskal’s Algorithm

  • Practice Problems

    1. This section contains many practice problems for the users which are considered important and must-do as far as Data Structure and Algorithm is concerned.

Other Featured Courses

code, html, digital-1076536.jpg

C Programming

Popular programming languages like C and C++ are utilised to develop high-performance software applications. They are frequently employed in the creation of system software, game engines, and operating systems.

Python Programming

Popular high-level programming language Python is renowned for its straightforward syntax and adaptability. It is employed in many different disciplines, including data science, artificial intelligence, and web development.