Java - Data structures and Algorithms Stack Stack - array implementation Stack - linked list implementation Queue Queue - array implementation Queue - 2 stacks implementation Circular Queue Queue - Linked List implementation Priority Queue - Binary Heap Binary Heap - Min heap Sorting Bubble Sort Insertion Sort QuickSort Selection Sort Short Bubble Merge Sort Searching Linear Search Unordered List Linear Search Ordered List Binary Search Binary Search Recursive Linked Lists Singly Linked List Doubly Linked List Circular Singly Linked List Circular Doubly Linked List Hash Table Hash Table - open addressing Hash Table - chaining Trie Trie Trees Tree Binary Search Tree AVL Tree Graphs Breadth First Search Depth First Search Depth First Search Recursive Test for connectivity - undirected graph Topological Sorting Cycle detection - directed graph Cycle detection - undirected graph Dijkstra algorithm Dijkstra algorithm - dense graphs Dijkstra algorithm - HashMap Prim's algorithm - minimum spanning tree