Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/bzdgn/data-structures-in-java

Data structures in detail with java implementations
https://github.com/bzdgn/data-structures-in-java

binary-tree data-structure data-structures doubly-linked-list hashtable implementation java linked-list list nary nary-tree queue sorting-algorithms stack tree trinary trinary-tree

Last synced: about 1 month ago
JSON representation

Data structures in detail with java implementations

Awesome Lists containing this project

README

        

# Data Structures In Java

*******
## Important Notes;
This is my data structure implementations that I wrote as I learned them on my DS recap. There is no lamer-stuff here. There are uncompleted code implementations on several packages and if you want to check it out, just go to the "ToDo's" section at the bottom of this readme file.

Levent Divilioglu Summer-2017
*******

1. [Intro: Package: ds_001_intro](src/ds_001_intro)
1. [Find Primes](src/ds_001_intro/FindPrimes.java)
2. [Greatest Common Divisor](src/ds_001_intro/GCD.java)
3. [Least Common Multiple](src/ds_001_intro/LCM.java)
4. [Prime Factors](src/ds_001_intro/PrimeFactorsDemo.java)
5. [Randomization Demo](src/ds_001_intro/RandomizatinDemo.java)
6. [Random Pick Demo](src/ds_001_intro/RandomPickDemo.java)
7. [Pseudo Number Generator](src/ds_001_intro/PSNG.java)
8. [Testing Primes](src/ds_001_intro/TestingPrimes.java)
9. [Rectangle Rule Demo](src/ds_001_intro/RectangleRuleAlgoDemo.java)
10. [Rectangle Rule Demo 2](src/ds_001_intro/RectangleRuleAlgoDemoV2.java)
11. [Trapezoid Rule Demo](src/ds_001_intro/TrapezoidRuleAlgoDemo.java)
12. [Trapezoid Rule Demo 2](src/ds_001_intro/TrapezoidRuleAlgoDemoV2.java)
13. [Trapezoid Rule Demo 3](src/ds_001_intro/TrapezoidRuleAlgoDemoV3.java)

2. [Linked Lists: Package: ds_002_linkedlists](src/ds_002_linkedlists)
1. [Cell](src/ds_002_linkedlists/Cell.java)
2. [Doubly Cell](src/ds_002_linkedlists/DCell.java)
3. [Linked List](src/ds_002_linkedlists/LinkedList.java)
4. [Linked List Demo](src/ds_002_linkedlists/LinkedListDemo.java)
5. [Doubly Linked List](src/ds_002_linkedlists/DoublyLinkedList.java)
6. [Doubly Linked List Demo](src/ds_002_linkedlists/DoublyLinkedListDemo.java)
7. [Sorted Linked List](src/ds_002_linkedlists/SortedLinkedList.java)
8. [Sorted Linked List Demo](src/ds_002_linkedlists/SortedLinkedListDemo.java)
9. [Sorting Items With Sorted Linked List Demo](src/ds_002_linkedlists/SortingItemsWithSortedLinkedListDemo.java)

3. [Arrays: Package: ds_003_arrays](src/ds_003_arrays)
1. [2D Array With Dynamic Row Number Demo](src/ds_003_arrays/Array2DWithVaryingRowNumbersDemo.java)
2. [Dynamic Array](src/ds_003_arrays/DynamicArray.java)
3. [Dynamic Array Demo](src/ds_003_arrays/DynamicArrayDemo.java)
4. [One Dimensional Array Demo](src/ds_003_arrays/OneDimensionalArrayDemo.java)
5. [Print Upper And Lower For 2D Matrix Demo](src/ds_003_arrays/PrintUpperAndLowerFor2DMatrixDemo.java)
6. [Sparse Array](src/ds_003_arrays/SparseArray.java)
7. [Sparse Array Demo](src/ds_003_arrays/SparseArrayDemo.java)
8. [Triangular Array](src/ds_003_arrays/TriangularArray.java)
9. [Triangular Array Demo](src/ds_003_arrays/TriangularArrayDemo.java)
10. [Word Pattern With 2D Array Demo](src/ds_003_arrays/WordPatternWith2DArrayDemo.java)

4. [Stacks & Queues: Package: ds_004_stacks_and_queues](src/ds_004_stacks_and_queues)
1. [Doubly Stack](src/ds_004_stacks_and_queues/DoubleStack.java)
2. [Doubly Stack Demo](src/ds_004_stacks_and_queues/DoubleStackDemo.java)
3. [Queue](src/ds_004_stacks_and_queues/Queue.java)
4. [Queue Array](src/ds_004_stacks_and_queues/QueueArray.java)
5. [Queue Array Demo](src/ds_004_stacks_and_queues/QueueArrayDemo.java)
6. [Queue Circular Array](src/ds_004_stacks_and_queues/QueueCircularArray.java)
7. [Queue Circular Array Demo](src/ds_004_stacks_and_queues/QueueCircularArrayDemo.java)
8. [Queue Demo](src/ds_004_stacks_and_queues/QueueDemo.java)
9. [Stack](src/ds_004_stacks_and_queues/Stack.java)
10. [Stack Algorithms Demo](src/ds_004_stacks_and_queues/StackAlgorithmsDemo.java)
11. [Stack Array](src/ds_004_stacks_and_queues/StackArray.java)
12. [Stack Array Demo](src/ds_004_stacks_and_queues/StackArrayDemo.java)
13. [Stack Demo](src/ds_004_stacks_and_queues/StackDemo.java)

5. [Sorting: Package: ds_005_sorting](src/ds_005_sorting)
1. [Bubble Sort Demo](src/ds_005_sorting/BubbleSortDemo.java)
2. [Bubble Sort Modified Demo](src/ds_005_sorting/BubbleSortModifiedDemo.java)
3. [Counting Sort Demo](src/ds_005_sorting/CountingSortDemo.java)
4. [Counting Sort Modified Demo](src/ds_005_sorting/CountingSortModifiedDemo.java)
5. [Heap Array](src/ds_005_sorting/HeapArray.java)
6. [Heap Array Demo](src/ds_005_sorting/HeapArrayDemo.java)
7. [Heap Tree](src/ds_005_sorting/HeapTree.java)
8. [Heap Tree Demo](src/ds_005_sorting/HeapTreeDemo.java)
9. [Insertion Sort Demo](src/ds_005_sorting/InsertionSortDemo.java)
10. [Insertion Sort Linked List Demo](src/ds_005_sorting/InsertionSortLinkedListDemo.java)
11. [Merge Sort Demo](src/ds_005_sorting/MergeSortDemo.java)
12. [Quick Sort Demo](src/ds_005_sorting/QuickSortDemo.java)
13. [Selection Sort Demo](src/ds_005_sorting/SelectionSortDemo.java)
14. [SQueue: Queue Implementation Used In The Package](src/ds_005_sorting/SQueue.java)
15. [SQueue Demo](src/ds_005_sorting/SQueueDemo.java)
16. [SStack: Stack Implementation Used In The Package](src/ds_005_sorting/SStack.java)
17. [SStack Demo](src/ds_005_sorting/SStackDemo.java)

6. [Searching: Package: ds_006_searching](src/ds_006_searching)
1. [Binary Search Demo](src/ds_006_searching/BinarySearchDemo.java)
2. [Interpolation Search Demo](src/ds_006_searching/InterpolationSearchDemo.java)
3. [Linear Search Demo](src/ds_006_searching/LinearSearchDemo.java)

7. [Hash Tables: Package: ds_007_hashtables](src/ds_007_hashtables)
1. [Basic HashTable](src/ds_007_hashtables/BasicHashTable.java)
2. [Basic HashTable Demo](src/ds_007_hashtables/BasicHashTableDemo.java)
3. [Chaining HashTable](src/ds_007_hashtables/ChainingHashTable.java)
4. [Chaining HashTable Demo](src/ds_007_hashtables/ChainingHashTableDemo.java)
5. [Chaining HashTable Generic](src/ds_007_hashtables/ChainingHashTableGeneric.java)
6. [Chaining HashTable Generic Demo](src/ds_007_hashtables/ChainingHashTableGenericDemo.java)

8. [Recursion: Package: ds_008_recursion](src/ds_008_recursion)
1. [Combination Demo](src/ds_008_recursion/CombinationDemo.java)
2. [Combination No Duplicates Demo](src/ds_008_recursion/CombinationNoDuplicatesDemo.java)
3. [Factorial Demo](src/ds_008_recursion/FactorialDemo.java)
4. [Fibonacci Iterative Demo](src/ds_008_recursion/FibonacciIterativeDemo.java)
5. [Fibonacci Recursive Demo](src/ds_008_recursion/FibonacciRecursiveDemo.java)
6. [Fibonacci With Array Demo](src/ds_008_recursion/FibonacciWithArrayDemo.java)
7. [Fibonacci With Stack Demo](src/ds_008_recursion/FibonacciWithStackDemo.java)
8. [Iterative Demo](src/ds_008_recursion/IterativeDemo.java)
9. [Peg Stack](src/ds_008_recursion/PegStack.java)
10. [Peg Stack Test](src/ds_008_recursion/PegStackTest.java)
11. [Permutation Demo](src/ds_008_recursion/PermutationDemo.java)
12. [Permutation No Duplicates Demo](src/ds_008_recursion/PermutationNoDuplicatesDemo.java)
13. [Recursion Fail Demo](src/ds_008_recursion/RecursionFailDemo.java)
14. [Tail Recursion Fail Demo](src/ds_008_recursion/TailRecursionFailDemo.java)
15. [Tail Recursion Fixed Demo](src/ds_008_recursion/TailRecursionFixedDemo.java)
16. [Tower Of Hanoi Demo](src/ds_008_recursion/TowerOfHanoiDemo.java)
17. [Tower Of Hanoi Peg Stack Demo](src/ds_008_recursion/TowerOfHanoiPegStackDemo.java)

9. [Backtracking: Package: ds_009_backtracking](src/ds_009_backtracking)
1. [Custom Eight Queens](src/ds_009_backtracking/CustomEightQueens.java)
2. [Eight Queens Mod Solution 1](src/ds_009_backtracking/EightQueensMod1Solution.java)
3. [Eight Queens Mod Solution 2](src/ds_009_backtracking/EightQueensMod2Solution.java)
4. [Eight Queens Solution](src/ds_009_backtracking/EightQueensSolution.java)

10. [Trees: Package: ds_010_trees](src/ds_010_trees)
1. [Binary Node](src/ds_010_trees/BinaryNode.java)
2. [Binary Tree](src/ds_010_trees/BinaryTree.java)
3. [Binary Tree Demo](src/ds_010_trees/BinaryTreeDemo.java)
4. [Binary Tree Traversal Demo](src/ds_010_trees/BinaryTreeTraversalDemo.java)
5. [Children](src/ds_010_trees/Children.java)
6. [Children Test](src/ds_010_trees/ChildrenTest.java)
7. [Nary Node](src/ds_010_trees/NaryNode.java)
8. [Nary Tree Traversal Demo](src/ds_010_trees/NaryTreeTraversalDemo.java)
9. [SQueue: Queue Implementation Used In The Package](src/ds_010_trees/SQueue.java)
10. [SQueue Demo](src/ds_010_trees/SQueueDemo.java)
11. [SStack: Stack Implementation Used In The Package](src/ds_010_trees/SStack.java)
12. [Trinary Node](src/ds_010_trees/TrinaryNode.java)
13. [Trinary Tree Traversal Demo](src/ds_010_trees/TrinaryTreeTraversalDemo.java)

11. [Balanced Trees: Package: ds_011_balanced_trees](src/ds_011_balanced_trees)
1. [AVL Tree](src/ds_011_balanced_trees/AVLTree.java)
2. [Basic BTree Node Search Demo](src/ds_011_balanced_trees/BasicBTreeNodeSearchDemo.java)
3. [BTree](src/ds_011_balanced_trees/BTree.java)
4. [BTree Bucket](src/ds_011_balanced_trees/BTreeBucket.java)
5. [BTree Demo](src/ds_011_balanced_trees/BTreeDemo.java)
6. [Dummy BTree Node](src/ds_011_balanced_trees/DummyBTreeNode.java)

12. [Decision Trees: Package: ds_012_decision_trees](src/ds_012_decision_trees)
1. [Decision Tree Generic Solution Demo](src/ds_012_decision_trees/DecisionTreeGenericSolutionDemo.java)
2. [Knights Tour Problem](src/ds_012_decision_trees/KnightsTourProblem.java)
3. [Partition Problem Enhanced Example](src/ds_012_decision_trees/PartitionProblemEnhancedExample.java)
4. [Partition Problem Example](src/ds_012_decision_trees/PartitionProblemExample.java)
5. [Partition Problem Generic Solution](src/ds_012_decision_trees/PartitionProblemGenericSolution.java)

13. [Network Algorithms: Package: ds_013_network_algorithms](src/ds_013_network_algorithms)
1. [Breadth First Demo](src/ds_013_network_algorithms/BreadthFirstDemo.java)
2. [Depth First Demo](src/ds_013_network_algorithms/DepthFirstDemo.java)
3. [Floyd Warshall All Pairs Shortest Path Demo](src/ds_013_network_algorithms/FloydWarshallAllPairsShortestPathDemo.java)
4. [Shortest Path Label Correcting Demo](src/ds_013_network_algorithms/ShortestPathLabelCorrectingDemo.java)
5. [Shortest Path Label Setting Demo](src/ds_013_network_algorithms/ShortestPathLabelSettingDemo.java)
6. [SQueue: Queue Implementation Used In The Package](src/ds_013_network_algorithms/SQueue.java)

14. [Network Algorithms - Sample Classes: Package: ds_013_network_algorithms.sampleClasses](src/ds_013_network_algorithms.sampleClasses)
1. [Directed Link Example Class](src/ds_013_network_algorithms.sampleClasses/DirectedLinkExampleClass.java)
2. [Directed Node Example Class](src/ds_013_network_algorithms.sampleClasses/DirectedNodeExampleClass.java)
3. [Enhanced Directed Link Example Class](src/ds_013_network_algorithms.sampleClasses/EnhancedDirectedLinkExampleClass.java)
4. [Enhanced Directed Node Example Class](src/ds_013_network_algorithms.sampleClasses/EnhancedDirectedNodeExampleClass.java)
5. [Simple Node Class Example](src/ds_013_network_algorithms.sampleClasses/SimpleNodeClassExample.java)
6. [Undirected Link Example Class](src/ds_013_network_algorithms.sampleClasses/UndirectedLinkExampleClass.java)
7. [Undirected Node Example Class](src/ds_013_network_algorithms.sampleClasses/UndirectedNodeExampleClass.java)

15. [Misc: Package: ds_999_misc](src/ds_999_misc)
1. [Check Anagram](src/ds_999_misc/CheckAnagram.java)
2. [Find Greatest Sum](src/ds_999_misc/FindGreatestSum.java)
3. [Number Permutation](src/ds_999_misc/NumberPermutation.java)
4. [Word Combination](src/ds_999_misc/WordCombination.java)
5. [Word Permutation](src/ds_999_misc/WordPermutation.java)

*******

## ToDo's:

- Appendix will be created in this Readme file
- DS_011 Package: BTree implementation will be completed
- DS_011 Package: AVLTree implementation will be completed
- DS_012 Package: Knight's Tour is going to be demonstrated
- DS_013 Package: Graphs are going to be completed
- DS_013 Package: Breadth-First Wave to be implemented
- DS_013 Package: Prim's algorithm to be implemented
- DS_013 Package: Kruskal's algorithm to be implemented