@@ -10,129 +10,145 @@ This project originally started out as an interview preparation project. However
1010
1111This is a C#.NET solution-project, and it contains three subprojects:
1212
13- 1 . [ Algorithms] ( Algorithms ) : A class library project. Contains the Algorithms implementations.
14- 2 . [ Data Structures] ( DataStructures ) : A class library project. Contains the Data Structures implementations.
15- 3 . [ UnitTest] ( UnitTest ) : Unit-testing project for the Algorithms and Data Structures.
13+ 1 . [ Algorithms] ( Algorithms ) : A class library project. Contains the Algorithms implementations
14+ 2 . [ Data Structures] ( DataStructures ) : A class library project. Contains the Data Structures implementations
15+ 3 . [ UnitTest] ( UnitTest ) : Unit-testing project for the Algorithms and Data Structures
1616
1717#### Requirements:
18+
1819 1 . .NET Core >= 2.0
1920 2 . XUnit
2021
2122#### A Note to Contributors:
23+
2224If you wish to contribute to C# ALGORITHMS, then please make sure you check out the [ Contribution Guidelines] ( CONTRIBUTING.md ) first.
2325
24- Note: The projects where tested with Visual Studio Community using .NET Core 2.0.3 on OSX 10 .
26+ Note: The projects where tested with Visual Studio Community using .NET Core 2.0.3 on mac OS .
2527
2628
2729## DATA STRUCTURES
2830
2931#### Lists:
30- * [ Skip List] ( DataStructures/Lists/SkipList.cs ) .
31- * [ Array List] ( DataStructures/Lists/ArrayList.cs ) .
32- * [ Stack] ( DataStructures/Lists/Stack.cs ) .
33- * [ Queue] ( DataStructures/Lists/Queue.cs ) .
34- * [ Single-Linked List] ( DataStructures/Lists/SLinkedList.cs ) .
35- * [ Double-Linked List] ( DataStructures/Lists/DLinkedList.cs ) .
32+
33+ * [ Skip List] ( DataStructures/Lists/SkipList.cs )
34+ * [ Array List] ( DataStructures/Lists/ArrayList.cs )
35+ * [ Stack] ( DataStructures/Lists/Stack.cs )
36+ * [ Queue] ( DataStructures/Lists/Queue.cs )
37+ * [ Single-Linked List] ( DataStructures/Lists/SLinkedList.cs )
38+ * [ Double-Linked List] ( DataStructures/Lists/DLinkedList.cs )
3639
3740#### Heaps:
38- * [ Binary-Min Heap] ( DataStructures/Heaps/BinaryMinHeap.cs ) .
39- * [ Binary-Max Heap] ( DataStructures/Heaps/BinaryMaxHeap.cs ) .
40- * [ Binomial-Min Heap] ( DataStructures/Heaps/BinomialMinHeap.cs ) .
41+
42+ * [ Binary-Min Heap] ( DataStructures/Heaps/BinaryMinHeap.cs )
43+ * [ Binary-Max Heap] ( DataStructures/Heaps/BinaryMaxHeap.cs )
44+ * [ Binomial-Min Heap] ( DataStructures/Heaps/BinomialMinHeap.cs )
4145
4246#### Priority Queues:
43- * [ Min-Priority Queue] ( DataStructures/Heaps/MinPriorityQueue.cs ) .
44- * [ Keyed Priority Queue] ( DataStructures/Heaps/KeyedPriorityQueue.cs ) .
47+
48+ * [ Min-Priority Queue] ( DataStructures/Heaps/MinPriorityQueue.cs )
49+ * [ Keyed Priority Queue] ( DataStructures/Heaps/KeyedPriorityQueue.cs )
4550
4651#### Hashing Functions:
47- * [ Prime Hashing Family] ( DataStructures/Hashing/PrimeHashingFamily.cs ) .
48- * [ Universal Hashing Family] ( DataStructures/Hashing/UniversalHashingFamily.cs ) .
52+
53+ * [ Prime Hashing Family] ( DataStructures/Hashing/PrimeHashingFamily.cs )
54+ * [ Universal Hashing Family] ( DataStructures/Hashing/UniversalHashingFamily.cs )
4955
5056#### Hash Tables:
51- * [ Chained Hash Table] ( DataStructures/Dictionaries/ChainedHashTable.cs ) .
52- * [ Cuckoo Hash Table] ( DataStructures/Dictionaries/CuckooHashTable.cs ) .
53- * [ Open-Addressing Hash Table] ( DataStructures/Dictionaries/OpenAddressingHashTable.cs ) .
57+
58+ * [ Chained Hash Table] ( DataStructures/Dictionaries/ChainedHashTable.cs )
59+ * [ Cuckoo Hash Table] ( DataStructures/Dictionaries/CuckooHashTable.cs )
60+ * [ Open-Addressing Hash Table] ( DataStructures/Dictionaries/OpenAddressingHashTable.cs )
5461
5562#### Sorted Collections (Tree-based):
56- * [ Sorted List] ( DataStructures/SortedCollections/SortedList.cs ) .
57- * [ Sorted Dictionary] ( DataStructures/SortedCollections/SortedDictionary.cs ) .
63+
64+ * [ Sorted List] ( DataStructures/SortedCollections/SortedList.cs )
65+ * [ Sorted Dictionary] ( DataStructures/SortedCollections/SortedDictionary.cs )
5866
5967#### Trees:
60- * [ Trie] ( DataStructures/Trees/Trie.cs ) .
61- * [ Trie Map] ( DataStructures/Trees/TrieMap.cs ) .
62- * [ AVL Tree] ( DataStructures/Trees/AVLTree.cs ) .
63- * [ Red-Black Tree] ( DataStructures/Trees/RedBlackTree.cs ) .
64- * [ Map version] ( DataStructures/Trees/RedBlackTreeMap.cs ) . Supports key-value pairs nodes; indexes nodes by keys.
65- * [ Binary Search Tree] ( DataStructures/Trees/BinarySearchTree.cs ) .
66- * [ Map version] ( DataStructures/Trees/BinarySearchTreeMap.cs ) . Supports key-value pairs nodes; indexes nodes by keys.
67- * [ Augmented Binary Search Tree] ( DataStructures/Trees/AugmentedBinarySearchTree.cs ) .
68+
69+ * [ Trie] ( DataStructures/Trees/Trie.cs )
70+ * [ Trie Map] ( DataStructures/Trees/TrieMap.cs )
71+ * [ AVL Tree] ( DataStructures/Trees/AVLTree.cs )
72+ * [ Red-Black Tree] ( DataStructures/Trees/RedBlackTree.cs )
73+ * [ Map version] ( DataStructures/Trees/RedBlackTreeMap.cs ) _ (supports key-value pairs nodes; indexes nodes by keys)_
74+ * [ Binary Search Tree] ( DataStructures/Trees/BinarySearchTree.cs )
75+ * [ Map version] ( DataStructures/Trees/BinarySearchTreeMap.cs ) _ (supports key-value pairs nodes; indexes nodes by keys)_
76+ * [ Augmented Binary Search Tree] ( DataStructures/Trees/AugmentedBinarySearchTree.cs )
6877
6978#### Graphs:
79+
7080 * Undirected Graphs:
71- + [ Clique Graphs] ( DataStructures/Graphs/CliqueGraph.cs ) .
72- + [ Undirected Sparse Graph] ( DataStructures/Graphs/UndirectedSparseGraph.cs ) .
73- + [ Undirected Dense Graph] ( DataStructures/Graphs/UndirectedDenseGraph.cs ) .
81+ + [ Clique Graphs] ( DataStructures/Graphs/CliqueGraph.cs )
82+ + [ Undirected Sparse Graph] ( DataStructures/Graphs/UndirectedSparseGraph.cs )
83+ + [ Undirected Dense Graph] ( DataStructures/Graphs/UndirectedDenseGraph.cs )
7484 * Undirected Weighted Graphs:
75- + [ Undirected Weighted Sparse Graph] ( DataStructures/Graphs/UndirectedWeightedSparseGraph.cs ) .
76- + [ Undirected Weighted Dense Graph] ( DataStructures/Graphs/UndirectedWeightedDenseGraph.cs ) .
85+ + [ Undirected Weighted Sparse Graph] ( DataStructures/Graphs/UndirectedWeightedSparseGraph.cs )
86+ + [ Undirected Weighted Dense Graph] ( DataStructures/Graphs/UndirectedWeightedDenseGraph.cs )
7787 * Directed Graphs:
78- + [ Directed Sparse Graph] ( DataStructures/Graphs/DirectedSparseGraph.cs ) .
79- + [ Directed Dense Graph] ( DataStructures/Graphs/DirectedDenseGraph.cs ) .
88+ + [ Directed Sparse Graph] ( DataStructures/Graphs/DirectedSparseGraph.cs )
89+ + [ Directed Dense Graph] ( DataStructures/Graphs/DirectedDenseGraph.cs )
8090 * Directed Weighted Graphs:
81- + [ Directed Weighted Sparse Graph] ( DataStructures/Graphs/DirectedWeightedSparseGraph.cs ) .
82- + [ Directed Weighted Dense Graph] ( DataStructures/Graphs/DirectedWeightedDenseGraph.cs ) .
91+ + [ Directed Weighted Sparse Graph] ( DataStructures/Graphs/DirectedWeightedSparseGraph.cs )
92+ + [ Directed Weighted Dense Graph] ( DataStructures/Graphs/DirectedWeightedDenseGraph.cs )
8393
8494
8595## ALGORITHMS
8696
8797#### Sorting:
88- * [ Bubble Sort] ( Algorithms/Sorting/BubbleSorter.cs ) .
89- * [ Bucket Sort] ( Algorithms/Sorting/BucketSorter.cs ) .
90- * [ BST Sort] ( Algorithms/Sorting/BinarySearchTreeSorter.cs ) .
91- * [ Comb Sort] ( Algorithms/Sorting/CombSorter.cs ) .
92- * [ Counting Sort] ( Algorithms/Sorting/CountingSorter.cs ) .
93- * [ Cycle Sort] ( Algorithms/Sorting/CycleSorter.cs ) .
94- * [ Gnome Sort] ( Algorithms/Sorting/GnomeSorter.cs ) .
95- * [ Heap Sort] ( Algorithms/Sorting/HeapSorter.cs ) .
96- * [ Insertion Sort] ( Algorithms/Sorting/InsertionSorter.cs ) .
97- * [ LSD Radix Sort] ( Algorithms/Sorting/LSDRadixSorter.cs ) .
98- * [ Merge Sort] ( Algorithms/Sorting/MergeSorter.cs ) .
99- * [ Selection Sort] ( Algorithms/Sorting/SelectionSorter.cs ) .
100- * [ Shell Sort] ( Algorithms/Sorting/ShellSorter.cs ) .
101- * [ OddEven Sort] ( Algorithms/Sorting/OddEvenSorter.cs ) .
102- * [ PigeonHole Sort] ( Algorithms/Sorting/PigeonHoleSorter.cs ) .
103- * [ Quick Sort] ( Algorithms/Sorting/QuickSorter.cs ) .
98+
99+ * [ Bubble Sort] ( Algorithms/Sorting/BubbleSorter.cs )
100+ * [ Bucket Sort] ( Algorithms/Sorting/BucketSorter.cs )
101+ * [ BST Sort] ( Algorithms/Sorting/BinarySearchTreeSorter.cs )
102+ * [ Comb Sort] ( Algorithms/Sorting/CombSorter.cs )
103+ * [ Counting Sort] ( Algorithms/Sorting/CountingSorter.cs )
104+ * [ Cycle Sort] ( Algorithms/Sorting/CycleSorter.cs )
105+ * [ Gnome Sort] ( Algorithms/Sorting/GnomeSorter.cs )
106+ * [ Heap Sort] ( Algorithms/Sorting/HeapSorter.cs )
107+ * [ Insertion Sort] ( Algorithms/Sorting/InsertionSorter.cs )
108+ * [ LSD Radix Sort] ( Algorithms/Sorting/LSDRadixSorter.cs )
109+ * [ Merge Sort] ( Algorithms/Sorting/MergeSorter.cs )
110+ * [ Selection Sort] ( Algorithms/Sorting/SelectionSorter.cs )
111+ * [ Shell Sort] ( Algorithms/Sorting/ShellSorter.cs )
112+ * [ OddEven Sort] ( Algorithms/Sorting/OddEvenSorter.cs )
113+ * [ PigeonHole Sort] ( Algorithms/Sorting/PigeonHoleSorter.cs )
114+ * [ Quick Sort] ( Algorithms/Sorting/QuickSorter.cs )
104115
105116#### Graphs:
117+
106118 * Graph Search:
107- + [ Depth-First Searcher] ( Algorithms/Graphs/DepthFirstSearcher.cs ) .
108- + [ Breadth-First Searcher] ( Algorithms/Graphs/BreadthFirstSearcher.cs ) .
119+ + [ Depth-First Searcher] ( Algorithms/Graphs/DepthFirstSearcher.cs )
120+ + [ Breadth-First Searcher] ( Algorithms/Graphs/BreadthFirstSearcher.cs )
109121 * Shortest Paths:
110- + [ Breadth-First SPs] ( Algorithms/Graphs/BreadthFirstShortestPaths.cs ) .
111- + [ Bellman-Ford SPs] ( Algorithms/Graphs/BellmanFordShortestPaths.cs ) .
112- + [ Dijkstra SPs] ( Algorithms/Graphs/DijkstraShortestPaths.cs ) .
113- + [ Dijkstra All-Pairs SPs] ( Algorithms/Graphs/DijkstraAllPairsShortestPaths.cs ) .
122+ + [ Breadth-First SPs] ( Algorithms/Graphs/BreadthFirstShortestPaths.cs )
123+ + [ Bellman-Ford SPs] ( Algorithms/Graphs/BellmanFordShortestPaths.cs )
124+ + [ Dijkstra SPs] ( Algorithms/Graphs/DijkstraShortestPaths.cs )
125+ + [ Dijkstra All-Pairs SPs] ( Algorithms/Graphs/DijkstraAllPairsShortestPaths.cs )
114126 * DFS Applications:
115- + [ Cycles Detector] ( Algorithms/Graphs/CyclesDetector.cs ) .
116- + [ Topological Sorter] ( Algorithms/Graphs/TopologicalSorter.cs ) .
127+ + [ Cycles Detector] ( Algorithms/Graphs/CyclesDetector.cs )
128+ + [ Topological Sorter] ( Algorithms/Graphs/TopologicalSorter.cs )
117129 * BFS Applications:
118- + [ Connected Components] ( Algorithms/Graphs/ConnectedComponents.cs ) .
119- + [ Bipartite Graphs Coloring] ( Algorithms/Graphs/BipartiteColoring.cs ) .
130+ + [ Connected Components] ( Algorithms/Graphs/ConnectedComponents.cs )
131+ + [ Bipartite Graphs Coloring] ( Algorithms/Graphs/BipartiteColoring.cs )
120132
121133#### Trees:
122- * [ Recursive Binary Tree Walker] ( Algorithms/Trees/BinaryTreeRecursiveWalker.cs ) .
123- + Methods: PrintAll, ForEach, Contains and BinarySearch. Traversal Modes: Preorder, Inorder & Postorder.
134+
135+ * [ Recursive Binary Tree Walker] ( Algorithms/Trees/BinaryTreeRecursiveWalker.cs )
136+ + Methods: PrintAll, ForEach, Contains and BinarySearch. Traversal Modes: Preorder, Inorder & Postorder
124137
125138#### Strings:
126- * [ Permutations and Anagrams] ( Algorithms/Strings/Permutations.cs ) .
127- * [ Edit Distance] ( Algorithms/Strings/EditDistance.cs ) .
128- + Uses a generic custom class for passing costs: [ EditDistanceCostsMap\< T\> ] ( Algorithms/Strings/EditDistanceCostsMap.cs ) .
139+
140+ * [ Permutations and Anagrams] ( Algorithms/Strings/Permutations.cs )
141+ * [ Edit Distance] ( Algorithms/Strings/EditDistance.cs )
142+ + Uses a generic custom class for passing costs: [ EditDistanceCostsMap\< T\> ] ( Algorithms/Strings/EditDistanceCostsMap.cs )
129143
130144#### Numeric:
131- * [ Catalan Numbers] ( Algorithms/Numeric/CatalanNumbers.cs ) .
145+
146+ * [ Catalan Numbers] ( Algorithms/Numeric/CatalanNumbers.cs )
132147 * [ Greatest Common Divisor] ( Algorithms/Numeric/GreatestCommonDivisor.cs )
133148
134149#### Visualization:
135- * [ Tree Drawer] ( DataStructures/Trees/TreeDrawer.cs ) .
150+
151+ * [ Tree Drawer] ( DataStructures/Trees/TreeDrawer.cs )
136152
137153
138154## CONTRIBUTORS
@@ -145,4 +161,5 @@ Note: The projects where tested with Visual Studio Community using .NET Core 2.0
145161<!-- Made with [contributors-img](https://contributors-img.firebaseapp.com). -->
146162
147163## LICENSE
164+
148165This project is licensed under the [ MIT License] ( LICENSE ) .
0 commit comments