Skip to content

A comprehensive collection of Data Structures implementations in Java, including arrays, linked lists, stacks, queues, trees, graphs, and sorting algorithms. This repository serves as both a learning resource and a reference guide for computer science students and developers looking to enhance their understanding of fundamental data structures

Notifications You must be signed in to change notification settings

Kanishk1420/Data-Structures-with-Java

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

76 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Data Structures and Algorithms (DSA) & Java Foundations

This repository contains resources, and important questions for core DSA concepts and fundamental Java programming each topics.

Completed Topics

Basics of Programming

  • Flowcharts & Pseudocodes
  • Variables & Data Types
  • Conditional Statements
  • Operators

Loops & Functions

  • For loop, While loop, Do-while loop
  • Patterns
  • Functions

Arrays

  • Introduction to Arrays
  • Searching & Sorting
    • Linear search
    • Binary search
    • Selection sort
    • Bubble sort
    • Insertion sort
    • Count sort

2D Arrays & Strings

  • 2D Arrays
  • Strings

Bit Manipulation

  • Binary number system
  • Bitwise operators
  • Bit operations
  • Fast exponentiation

Object-oriented programming

  • Objects & Classes
  • Constructors and related concepts
  • Abstraction, Encapsulation
  • Inheritance, Polymorphism
  • Abstract classes
  • Interfaces

Recursion

  • Basics of Recursion
  • Recursive problems
    • Factorial
    • Fibonacci
    • Power of a number
    • Tower of Hanoi

Divide and Conquer

  • Introduction to Divide and Conquer
  • Merge Sort
  • Quick Sort

Time and Space Complexity

  • Big O Notation
  • Analyzing algorithms
  • Common complexities
  • Space complexity

Linear Data Structures

  • Backtracking
    • N-Queens Problem
    • Sudoku Solver
  • ArrayLists
  • Linked lists
    • Insertion and deletion operations
    • Midpoint of linked list
    • Merging sorted linked lists
    • Reversing a linked list
  • Stacks and Queues
    • Stack using arrays and linked list
    • Queue using arrays
    • Dynamic queue class
    • Circular queue

Advanced Data Structures

  • Binary Trees & BST
    • Introduction to Binary Trees
    • Tree traversals
    • Height and LCA of tree
    • Binary Search Trees
    • Insertion and deletion in BST
    • Types of balanced BSTs
  • Heaps/Priority Queues
    • Min/Max heaps
    • Heap Sort
    • Priority Queues implementation
    • Insert and Delete operations
  • Hashing (Maps & Sets)
    • Hashmaps
    • Hashsets
    • Implementation details
  • Tries
    • Basic operations and implementation
  • Graphs
    • Introduction and terminology
    • Graph traversals (DFS and BFS)
    • Weighted and directed graphs
    • Minimum Spanning Trees
    • Cycle Detection
    • Dijkstra's algorithm
    • Bellman Ford Algorithm
  • Segment Trees
    • Creation and range queries

Dynamic Programming

  • Fundamentals of DP
  • Memoization
  • Knapsack, Factorial, Fibonacci using DP
  • Longest Common Subsequence
  • Edit distance
  • Matrix Chain Multiplication

Learning Resources

  • Books
  • Online courses
  • Practice websites like LeetCode and Codeforces
  • Community forums

Contributing

Feel free to contribute to this repository by adding implementations, improving existing code, or suggesting additional topics.

About

A comprehensive collection of Data Structures implementations in Java, including arrays, linked lists, stacks, queues, trees, graphs, and sorting algorithms. This repository serves as both a learning resource and a reference guide for computer science students and developers looking to enhance their understanding of fundamental data structures

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •  

Languages