@@ -10,14 +10,14 @@ This project originally started out as an interview preparation project. However
10
10
11
11
This is a C#.NET solution-project, and it contains three subprojects:
12
12
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 . [ Main Program] ( MainProgram ) : Contains tests for the data structures and algorithms projects.
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 . [ Main Program] ( MainProgram ) : Contains tests for the data structures and algorithms projects.
16
16
17
17
#### Requirements:
18
- 1 . C# 5
19
- 2 . .NET 4.5
20
- 3 . NUnit
18
+ 1 . C# 5
19
+ 2 . .NET 4.5
20
+ 3 . NUnit
21
21
22
22
#### A Note to Contributors:
23
23
If you wish to contribute to C# ALGORITHMS, then please make sure you check out the [ Contribution Guidelines] ( CONTRIBUTING.md ) first.
@@ -28,116 +28,116 @@ Note: The projects where tested on Xamarin Studio (MonoDevelop) on OSX 10, and V
28
28
## DATA STRUCTURES
29
29
30
30
#### Lists:
31
- * [ Skip List] ( DataStructures/Lists/SkipList.cs ) .
32
- * [ Array List] ( DataStructures/Lists/ArrayList.cs ) .
33
- * [ Stack] ( DataStructures/Lists/Stack.cs ) .
34
- * [ Queue] ( DataStructures/Lists/Queue.cs ) .
35
- * [ Single-Linked List] ( DataStructures/Lists/SLinkedList.cs ) .
36
- * [ Double-Linked List] ( DataStructures/Lists/DLinkedList.cs ) .
31
+ * [ Skip List] ( DataStructures/Lists/SkipList.cs ) .
32
+ * [ Array List] ( DataStructures/Lists/ArrayList.cs ) .
33
+ * [ Stack] ( DataStructures/Lists/Stack.cs ) .
34
+ * [ Queue] ( DataStructures/Lists/Queue.cs ) .
35
+ * [ Single-Linked List] ( DataStructures/Lists/SLinkedList.cs ) .
36
+ * [ Double-Linked List] ( DataStructures/Lists/DLinkedList.cs ) .
37
37
38
38
#### Heaps:
39
- * [ Binary-Min Heap] ( DataStructures/Heaps/BinaryMinHeap.cs ) .
40
- * [ Binary-Max Heap] ( DataStructures/Heaps/BinaryMaxHeap.cs ) .
41
- * [ Binomial-Min Heap] ( DataStructures/Heaps/BinomialMinHeap.cs ) .
39
+ * [ Binary-Min Heap] ( DataStructures/Heaps/BinaryMinHeap.cs ) .
40
+ * [ Binary-Max Heap] ( DataStructures/Heaps/BinaryMaxHeap.cs ) .
41
+ * [ Binomial-Min Heap] ( DataStructures/Heaps/BinomialMinHeap.cs ) .
42
42
43
43
#### Priority Queues:
44
- * [ Min-Priority Queue] ( DataStructures/Heaps/MinPriorityQueue.cs ) .
45
- * [ Keyed Priority Queue] ( DataStructures/Heaps/KeyedPriorityQueue.cs ) .
44
+ * [ Min-Priority Queue] ( DataStructures/Heaps/MinPriorityQueue.cs ) .
45
+ * [ Keyed Priority Queue] ( DataStructures/Heaps/KeyedPriorityQueue.cs ) .
46
46
47
47
#### Hashing Functions:
48
- * [ Prime Hashing Family] ( DataStructures/Hashing/PrimeHashingFamily.cs ) .
49
- * [ Universal Hashing Family] ( DataStructures/Hashing/UniversalHashingFamily.cs ) .
48
+ * [ Prime Hashing Family] ( DataStructures/Hashing/PrimeHashingFamily.cs ) .
49
+ * [ Universal Hashing Family] ( DataStructures/Hashing/UniversalHashingFamily.cs ) .
50
50
51
51
#### Hash Tables:
52
- * [ Chained Hash Table] ( DataStructures/Dictionaries/ChainedHashTable.cs ) .
53
- * [ Cuckoo Hash Table] ( DataStructures/Dictionaries/CuckooHashTable.cs ) .
52
+ * [ Chained Hash Table] ( DataStructures/Dictionaries/ChainedHashTable.cs ) .
53
+ * [ Cuckoo Hash Table] ( DataStructures/Dictionaries/CuckooHashTable.cs ) .
54
54
55
55
#### Sorted Collections (Tree-based):
56
- * [ Sorted List] ( DataStructures/SortedCollections/SortedList.cs ) .
57
- * [ Sorted Dictionary] ( DataStructures/SortedCollections/SortedDictionary.cs ) .
56
+ * [ Sorted List] ( DataStructures/SortedCollections/SortedList.cs ) .
57
+ * [ Sorted Dictionary] ( DataStructures/SortedCollections/SortedDictionary.cs ) .
58
58
59
59
#### 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 ) .
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
68
69
69
#### Graphs:
70
- * 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 ) .
74
- * Undirected Weighted Graphs:
75
- + [ Undirected Weighted Sparse Graph] ( DataStructures/Graphs/UndirectedWeightedSparseGraph.cs ) .
76
- + [ Undirected Weighted Dense Graph] ( DataStructures/Graphs/UndirectedWeightedDenseGraph.cs ) .
77
- * Directed Graphs:
78
- + [ Directed Sparse Graph] ( DataStructures/Graphs/DirectedSparseGraph.cs ) .
79
- + [ Directed Dense Graph] ( DataStructures/Graphs/DirectedDenseGraph.cs ) .
80
- * Directed Weighted Graphs:
81
- + [ Directed Weighted Sparse Graph] ( DataStructures/Graphs/DirectedWeightedSparseGraph.cs ) .
82
- + [ Directed Weighted Dense Graph] ( DataStructures/Graphs/DirectedWeightedDenseGraph.cs ) .
70
+ * 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 ) .
74
+ * Undirected Weighted Graphs:
75
+ + [ Undirected Weighted Sparse Graph] ( DataStructures/Graphs/UndirectedWeightedSparseGraph.cs ) .
76
+ + [ Undirected Weighted Dense Graph] ( DataStructures/Graphs/UndirectedWeightedDenseGraph.cs ) .
77
+ * Directed Graphs:
78
+ + [ Directed Sparse Graph] ( DataStructures/Graphs/DirectedSparseGraph.cs ) .
79
+ + [ Directed Dense Graph] ( DataStructures/Graphs/DirectedDenseGraph.cs ) .
80
+ * Directed Weighted Graphs:
81
+ + [ Directed Weighted Sparse Graph] ( DataStructures/Graphs/DirectedWeightedSparseGraph.cs ) .
82
+ + [ Directed Weighted Dense Graph] ( DataStructures/Graphs/DirectedWeightedDenseGraph.cs ) .
83
83
84
84
85
85
## ALGORITHMS
86
86
87
87
#### 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 ) .
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 ) .
104
104
105
105
#### Graphs:
106
- * Graph Search:
107
- + [ Depth-First Searcher] ( Algorithms/Graphs/DepthFirstSearcher.cs ) .
108
- + [ Breadth-First Searcher] ( Algorithms/Graphs/BreadthFirstSearcher.cs ) .
109
- * 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 ) .
114
- * DFS Applications:
115
- + [ Cycles Detector] ( Algorithms/Graphs/CyclesDetector.cs ) .
116
- + [ Topological Sorter] ( Algorithms/Graphs/TopologicalSorter.cs ) .
117
- * BFS Applications:
118
- + [ Connected Components] ( Algorithms/Graphs/ConnectedComponents.cs ) .
119
- + [ Bipartite Graphs Coloring] ( Algorithms/Graphs/BipartiteColoring.cs ) .
106
+ * Graph Search:
107
+ + [ Depth-First Searcher] ( Algorithms/Graphs/DepthFirstSearcher.cs ) .
108
+ + [ Breadth-First Searcher] ( Algorithms/Graphs/BreadthFirstSearcher.cs ) .
109
+ * 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 ) .
114
+ * DFS Applications:
115
+ + [ Cycles Detector] ( Algorithms/Graphs/CyclesDetector.cs ) .
116
+ + [ Topological Sorter] ( Algorithms/Graphs/TopologicalSorter.cs ) .
117
+ * BFS Applications:
118
+ + [ Connected Components] ( Algorithms/Graphs/ConnectedComponents.cs ) .
119
+ + [ Bipartite Graphs Coloring] ( Algorithms/Graphs/BipartiteColoring.cs ) .
120
120
121
121
#### Trees:
122
- * [ Recursive Binary Tree Walker] ( Algorithms/Trees/BinaryTreeRecursiveWalker.cs ) .
123
- + Methods: PrintAll, ForEach, Contains and BinarySearch. Traversal Modes: Preorder, Inorder & Postorder.
122
+ * [ Recursive Binary Tree Walker] ( Algorithms/Trees/BinaryTreeRecursiveWalker.cs ) .
123
+ + Methods: PrintAll, ForEach, Contains and BinarySearch. Traversal Modes: Preorder, Inorder & Postorder.
124
124
125
125
#### 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 ) .
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 ) .
129
129
130
130
#### Numeric:
131
- * [ Catalan Numbers] ( Algorithms/Numeric/CatalanNumbers.cs ) .
132
- * [ Greatest Common Divisor] ( Algorithms/Numeric/GreatestCommonDivisor.cs )
131
+ * [ Catalan Numbers] ( Algorithms/Numeric/CatalanNumbers.cs ) .
132
+ * [ Greatest Common Divisor] ( Algorithms/Numeric/GreatestCommonDivisor.cs )
133
133
134
134
#### Visualization:
135
- * [ Tree Drawer] ( DataStructures/Trees/TreeDrawer.cs ) .
135
+ * [ Tree Drawer] ( DataStructures/Trees/TreeDrawer.cs ) .
136
136
137
137
138
138
## CONTRIBUTORS
139
- * [ Edgar Carballo Domínguez] ( https://github.com/karv ) .
140
- * [ Lucas Lemaire] ( https://github.com/ZwoRmi ) .
139
+ * [ Edgar Carballo Domínguez] ( https://github.com/karv ) .
140
+ * [ Lucas Lemaire] ( https://github.com/ZwoRmi ) .
141
141
142
142
143
143
## LICENSE
0 commit comments