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

14 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Data Structures and Algorithms (DSA) & Java Foundations

This repository contains resources and implementations for core DSA concepts and fundamental Java programming 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

Linear Data Structures

  • 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

Problem Solving Techniques

  • Recursion, Backtracking, Divide & Conquer
    • Principle of mathematical induction
    • Factorial, Fibonacci using recursion
    • Recursion with arrays and strings
    • 2D array recursion
    • Merge sort and quick sort
  • Bit Manipulation
    • Binary number system
    • Bitwise operators
    • Bit operations
    • Fast exponentiation
  • Time & Space Complexity
    • Order complexity analysis
    • Theoretical complexity analysis
    • Analysis of searching and recursive algorithms
  • Greedy Algorithms
    • Introduction to greedy approach
    • Classical problem solving

Dynamic Programming

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

Object-oriented programming

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

Remaining Topics

Advanced Data Structures

  • Trees (Advanced)

    • AVL Trees
    • Red-Black Trees
    • B-Trees
  • Advanced Graph Algorithms

    • Network Flow
    • Bipartite Matching
    • Advanced Path Algorithms
  • Advanced Data Structures

    • Disjoint Set Union (Union-Find)
    • Fenwick Trees (Binary Indexed Trees)

Algorithms

  • Advanced Sorting

    • RadixSort
    • CountingSort optimization
  • String Algorithms

    • KMP Algorithm
    • Rabin-Karp
    • Suffix Arrays and Trees
    • String Matching

Advanced Java Concepts

  • Object-Oriented Programming in Depth

    • Design patterns implementation
  • Exception Handling

    • Custom exceptions
    • Exception chaining
    • Try-with-resources
    • Best practices
  • Java Collections Framework

    • Advanced collections usage
    • Performance characteristics
    • Custom implementations
    • Collections utility methods
    • Concurrent collections
  • Generics

    • Type erasure
    • Bounded type parameters
    • Wildcards
    • Generic methods and classes
  • Multithreading and Concurrency

    • Thread lifecycle and states
    • Synchronization mechanisms
    • Locks and atomic variables
    • Thread pools and executors
    • CompletableFuture
    • Fork/Join framework

Advanced Java

  • Java I/O and NIO

    • File handling
    • Serialization
    • Non-blocking I/O
    • Memory-mapped files
  • Functional Programming

    • Lambda expressions
    • Method references
    • Functional interfaces
    • Stream API advanced operations
  • Reflection and Annotations

    • Dynamic class loading
    • Metaprogramming
    • Custom annotations
    • Annotation processors
  • Java Database Connectivity (JDBC)

    • Connection pooling
    • Prepared statements
    • Batch processing
    • Transaction management
  • Java APIs

    • Date and Time API
    • Optional class
    • Regular Expressions
    • Internationalization

Implementation Projects

  • Graph algorithms visualizer
  • Dynamic programming problem solver
  • Custom data structure library
  • Multithreaded application examples
  • Design patterns showcase

Learning Resources

  • Books
  • Online courses
  • Practice websites
  • 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

Languages