Skip to content

Commit d21656a

Browse files
committed
refactor graph
1 parent b5ecb71 commit d21656a

File tree

2 files changed

+30
-38
lines changed

2 files changed

+30
-38
lines changed

Advanced.Algorithms/DataStructures/Graph/AdjacencyList/DiGraph.cs

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -216,12 +216,7 @@ public List<T> GetAllInEdges(T vertex)
216216
/// <returns></returns>
217217
public DiGraphVertex<T> FindVertex(T value)
218218
{
219-
if (Vertices.ContainsKey(value))
220-
{
221-
return Vertices[value];
222-
}
223-
224-
return null;
219+
return Vertices.ContainsKey(value) ? Vertices[value] : null;
225220
}
226221

227222
/// <summary>

Advanced.Algorithms/DataStructures/Graph/AdjacencyMatrix/DiGraph.cs

Lines changed: 29 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ public DiGraph()
3131
reverseVertexIndices = new System.Collections.Generic.Dictionary<int, T>();
3232
matrix = new BitArray[maxSize];
3333

34-
for (int i = 0; i < maxSize; i++)
34+
for (var i = 0; i < maxSize; i++)
3535
{
3636
matrix[i] = new BitArray(maxSize);
3737
}
@@ -99,7 +99,7 @@ public void RemoveVertex(T value)
9999
var index = vertexIndices[value];
100100

101101
//clear edges
102-
for (int i = 0; i < maxSize; i++)
102+
for (var i = 0; i < maxSize; i++)
103103
{
104104
matrix[i].Set(index, false);
105105
matrix[index].Set(i, false);
@@ -191,12 +191,7 @@ public bool HasEdge(T source, T dest)
191191
var sourceIndex = vertexIndices[source];
192192
var destIndex = vertexIndices[dest];
193193

194-
if (matrix[sourceIndex].Get(destIndex))
195-
{
196-
return true;
197-
}
198-
199-
return false;
194+
return matrix[sourceIndex].Get(destIndex);
200195
}
201196

202197
public List<T> GetAllOutEdges(T vertex)
@@ -210,7 +205,7 @@ public List<T> GetAllOutEdges(T vertex)
210205

211206
var result = new List<T>();
212207

213-
for (int i = 0; i < maxSize; i++)
208+
for (var i = 0; i < maxSize; i++)
214209
{
215210
if(matrix[index].Get(i))
216211
{
@@ -232,7 +227,7 @@ public List<T> GetAllInEdges(T vertex)
232227

233228
var result = new List<T>();
234229

235-
for (int i = 0; i < maxSize; i++)
230+
for (var i = 0; i < maxSize; i++)
236231
{
237232
if (matrix[i].Get(index))
238233
{
@@ -246,15 +241,15 @@ public List<T> GetAllInEdges(T vertex)
246241
private void doubleMatrixSize()
247242
{
248243
var newMatrix = new BitArray[maxSize * 2];
249-
for (int i = 0; i < maxSize * 2; i++)
244+
for (var i = 0; i < maxSize * 2; i++)
250245
{
251246
newMatrix[i] = new BitArray(maxSize * 2);
252247
}
253248

254249
var newVertexIndices = new System.Collections.Generic.Dictionary<T, int>();
255250
var newReverseIndices = new System.Collections.Generic.Dictionary<int, T>();
256251

257-
int k = 0;
252+
var k = 0;
258253
foreach (var vertex in vertexIndices)
259254
{
260255
newVertexIndices.Add(vertex.Key, k);
@@ -263,20 +258,21 @@ private void doubleMatrixSize()
263258
}
264259
nextAvailableIndex = k;
265260

266-
for (int i = 0; i < maxSize; i++)
261+
for (var i = 0; i < maxSize; i++)
267262
{
268263
newMatrix[i] = new BitArray(maxSize * 2);
269-
for (int j = 0; j < maxSize; j++)
264+
for (var j = 0; j < maxSize; j++)
270265
{
271-
if (matrix[i].Get(j)
272-
&& reverseVertexIndices.ContainsKey(i)
273-
&& reverseVertexIndices.ContainsKey(j))
266+
if (!matrix[i].Get(j) || !reverseVertexIndices.ContainsKey(i) ||
267+
!reverseVertexIndices.ContainsKey(j))
274268
{
275-
var newI = newVertexIndices[reverseVertexIndices[i]];
276-
var newJ = newVertexIndices[reverseVertexIndices[j]];
277-
278-
newMatrix[newI].Set(newJ, true);
269+
continue;
279270
}
271+
272+
var newI = newVertexIndices[reverseVertexIndices[i]];
273+
var newJ = newVertexIndices[reverseVertexIndices[j]];
274+
275+
newMatrix[newI].Set(newJ, true);
280276
}
281277
}
282278

@@ -289,15 +285,15 @@ private void doubleMatrixSize()
289285
private void halfMatrixSize()
290286
{
291287
var newMatrix = new BitArray[maxSize / 2];
292-
for (int i = 0; i < maxSize / 2; i++)
288+
for (var i = 0; i < maxSize / 2; i++)
293289
{
294290
newMatrix[i] = new BitArray(maxSize / 2);
295291
}
296292

297293
var newVertexIndices = new System.Collections.Generic.Dictionary<T, int>();
298294
var newReverseIndices = new System.Collections.Generic.Dictionary<int, T>();
299295

300-
int k = 0;
296+
var k = 0;
301297
foreach (var vertex in vertexIndices)
302298
{
303299
newVertexIndices.Add(vertex.Key, k);
@@ -306,19 +302,20 @@ private void halfMatrixSize()
306302
}
307303
nextAvailableIndex = k;
308304

309-
for (int i = 0; i < maxSize; i++)
305+
for (var i = 0; i < maxSize; i++)
310306
{
311-
for (int j = 0; j < maxSize; j++)
307+
for (var j = 0; j < maxSize; j++)
312308
{
313-
if (matrix[i].Get(j)
314-
&& reverseVertexIndices.ContainsKey(i)
315-
&& reverseVertexIndices.ContainsKey(j))
309+
if (!matrix[i].Get(j) || !reverseVertexIndices.ContainsKey(i) ||
310+
!reverseVertexIndices.ContainsKey(j))
316311
{
317-
var newI = newVertexIndices[reverseVertexIndices[i]];
318-
var newJ = newVertexIndices[reverseVertexIndices[j]];
319-
320-
newMatrix[newI].Set(newJ, true);
312+
continue;
321313
}
314+
315+
var newI = newVertexIndices[reverseVertexIndices[i]];
316+
var newJ = newVertexIndices[reverseVertexIndices[j]];
317+
318+
newMatrix[newI].Set(newJ, true);
322319
}
323320
}
324321

0 commit comments

Comments
 (0)