# DataStructuresInJava
Implementing data structures and algorithms in Java
* Dynamic Array Implementation
* Implementation of Pascal's triangle (jagged arrays)
* Printing all prime numbers till given n.
* Theorem: Assume all numbers to be prime until proven false.
* Singly Linked List
* Standard singly linked list: push/pop front, insert(i), remove(i), reverse, removeValue
* Queue implementation using a singly linked list with a tail pointer.
* Binary Search (not really a data structure, but its okay I guess)
* Both iterative and recursive
* Binary Search Tree
* Used generics for the first time!
* Hash Table
* add, get, remove, hash(key).
* Very simple hashing used. Next step could be to use prime numbers to make a decent hash.
* Binary Heap
* Implemented Max Heap
* Also includes a method for heapsort
* Graph Algorithms
* Storing undirected and directed graphs
* Methods to add & get edges and vertices. Adjacency list representation.
* BFS
* DFS
* Minimum Spanning Trees
* Prim's algo
* Kruskal's algo using UnionFind
* Dijkstra's shortest path algo
* Solutions to some leetcode questions on graphs
* Topological Sort
* Cycle detection