83
83
84
84
< h1 id ="Advanced_Algorithms_DataStructures_Graph_AdjacencyList_DiGraph_1 " data-uid ="Advanced.Algorithms.DataStructures.Graph.AdjacencyList.DiGraph`1 " class ="text-break "> Class DiGraph<T>
85
85
</ h1 >
86
- < div class ="markdown level0 summary "> < p > A directed graph implementation</ p >
86
+ < div class ="markdown level0 summary "> < p > A directed graph implementation.
87
+ IEnumerable enumerates all vertices.</ p >
87
88
</ div >
88
89
< div class ="markdown level0 conceptual "> </ div >
89
90
< div class ="inheritance ">
90
91
< h5 > Inheritance</ h5 >
91
92
< div class ="level0 "> < a class ="xref " href ="https://docs.microsoft.com/dotnet/api/system.object "> Object</ a > </ div >
92
93
< div class ="level1 "> < span class ="xref "> DiGraph<T></ span > </ div >
93
94
</ div >
95
+ < div classs ="implements ">
96
+ < h5 > Implements</ h5 >
97
+ < div > < a class ="xref " href ="https://docs.microsoft.com/dotnet/api/system.collections.generic.ienumerable-1 "> IEnumerable</ a > <T></ div >
98
+ < div > < a class ="xref " href ="https://docs.microsoft.com/dotnet/api/system.collections.ienumerable "> IEnumerable</ a > </ div >
99
+ </ div >
94
100
< div class ="inheritedMembers ">
95
101
< h5 > Inherited Members</ h5 >
96
102
< div >
@@ -119,7 +125,7 @@ <h6><strong>Namespace</strong>: <a class="xref" href="Advanced.Algorithms.DataSt
119
125
< h6 > < strong > Assembly</ strong > : Advanced.Algorithms.dll</ h6 >
120
126
< h5 id ="Advanced_Algorithms_DataStructures_Graph_AdjacencyList_DiGraph_1_syntax "> Syntax</ h5 >
121
127
< div class ="codewrapper ">
122
- < pre > < code class ="lang-csharp hljs "> public class DiGraph<T></ code > </ pre >
128
+ < pre > < code class ="lang-csharp hljs "> public class DiGraph<T> : IEnumerable<T>, IEnumerable </ code > </ pre >
123
129
</ div >
124
130
< h5 class ="typeParameters "> Type Parameters</ h5 >
125
131
< table class ="table table-bordered table-striped table-condensed ">
@@ -142,8 +148,7 @@ <h3 id="constructors">Constructors
142
148
143
149
< a id ="Advanced_Algorithms_DataStructures_Graph_AdjacencyList_DiGraph_1__ctor_ " data-uid ="Advanced.Algorithms.DataStructures.Graph.AdjacencyList.DiGraph`1.#ctor* "> </ a >
144
150
< h4 id ="Advanced_Algorithms_DataStructures_Graph_AdjacencyList_DiGraph_1__ctor " data-uid ="Advanced.Algorithms.DataStructures.Graph.AdjacencyList.DiGraph`1.#ctor "> DiGraph()</ h4 >
145
- < div class ="markdown level1 summary "> < p > Constructor</ p >
146
- </ div >
151
+ < div class ="markdown level1 summary "> </ div >
147
152
< div class ="markdown level1 conceptual "> </ div >
148
153
< h5 class ="decalaration "> Declaration</ h5 >
149
154
< div class ="codewrapper ">
@@ -155,8 +160,8 @@ <h3 id="properties">Properties
155
160
156
161
< a id ="Advanced_Algorithms_DataStructures_Graph_AdjacencyList_DiGraph_1_ReferenceVertex_ " data-uid ="Advanced.Algorithms.DataStructures.Graph.AdjacencyList.DiGraph`1.ReferenceVertex* "> </ a >
157
162
< h4 id ="Advanced_Algorithms_DataStructures_Graph_AdjacencyList_DiGraph_1_ReferenceVertex " data-uid ="Advanced.Algorithms.DataStructures.Graph.AdjacencyList.DiGraph`1.ReferenceVertex "> ReferenceVertex</ h4 >
158
- < div class ="markdown level1 summary "> < p > return a reference vertex to start traversing Vertices
159
- O(1) complexity </ p >
163
+ < div class ="markdown level1 summary "> < p > Return a reference vertex to start traversing Vertices
164
+ Time complexity: O(1). </ p >
160
165
</ div >
161
166
< div class ="markdown level1 conceptual "> </ div >
162
167
< h5 class ="decalaration "> Declaration</ h5 >
@@ -209,8 +214,8 @@ <h3 id="methods">Methods
209
214
210
215
< a id ="Advanced_Algorithms_DataStructures_Graph_AdjacencyList_DiGraph_1_AddEdge_ " data-uid ="Advanced.Algorithms.DataStructures.Graph.AdjacencyList.DiGraph`1.AddEdge* "> </ a >
211
216
< h4 id ="Advanced_Algorithms_DataStructures_Graph_AdjacencyList_DiGraph_1_AddEdge__0__0_ " data-uid ="Advanced.Algorithms.DataStructures.Graph.AdjacencyList.DiGraph`1.AddEdge(`0,`0) "> AddEdge(T, T)</ h4 >
212
- < div class ="markdown level1 summary "> < p > add an edge from source to destination vertex
213
- O(1) complexity </ p >
217
+ < div class ="markdown level1 summary "> < p > Add an edge from source to destination vertex.
218
+ Time complexity: O(1). </ p >
214
219
</ div >
215
220
< div class ="markdown level1 conceptual "> </ div >
216
221
< h5 class ="decalaration "> Declaration</ h5 >
@@ -243,8 +248,8 @@ <h5 class="parameters">Parameters</h5>
243
248
244
249
< a id ="Advanced_Algorithms_DataStructures_Graph_AdjacencyList_DiGraph_1_AddVertex_ " data-uid ="Advanced.Algorithms.DataStructures.Graph.AdjacencyList.DiGraph`1.AddVertex* "> </ a >
245
250
< h4 id ="Advanced_Algorithms_DataStructures_Graph_AdjacencyList_DiGraph_1_AddVertex__0_ " data-uid ="Advanced.Algorithms.DataStructures.Graph.AdjacencyList.DiGraph`1.AddVertex(`0) "> AddVertex(T)</ h4 >
246
- < div class ="markdown level1 summary "> < p > add a new vertex to this graph
247
- O(1) complexity </ p >
251
+ < div class ="markdown level1 summary "> < p > Add a new vertex to this graph.
252
+ Time complexity: O(1). </ p >
248
253
</ div >
249
254
< div class ="markdown level1 conceptual "> </ div >
250
255
< h5 class ="decalaration "> Declaration</ h5 >
@@ -287,8 +292,8 @@ <h5 class="returns">Returns</h5>
287
292
288
293
< a id ="Advanced_Algorithms_DataStructures_Graph_AdjacencyList_DiGraph_1_FindVertex_ " data-uid ="Advanced.Algorithms.DataStructures.Graph.AdjacencyList.DiGraph`1.FindVertex* "> </ a >
289
294
< h4 id ="Advanced_Algorithms_DataStructures_Graph_AdjacencyList_DiGraph_1_FindVertex__0_ " data-uid ="Advanced.Algorithms.DataStructures.Graph.AdjacencyList.DiGraph`1.FindVertex(`0) "> FindVertex(T)</ h4 >
290
- < div class ="markdown level1 summary "> < p > returns the vertex object with given value
291
- O(1) complexity </ p >
295
+ < div class ="markdown level1 summary "> < p > Returns the vertex object with given value.
296
+ Time complexity: O(1). </ p >
292
297
</ div >
293
298
< div class ="markdown level1 conceptual "> </ div >
294
299
< h5 class ="decalaration "> Declaration</ h5 >
@@ -329,13 +334,40 @@ <h5 class="returns">Returns</h5>
329
334
</ table >
330
335
331
336
332
- < a id ="Advanced_Algorithms_DataStructures_Graph_AdjacencyList_DiGraph_1_GetAllInEdges_ " data-uid ="Advanced.Algorithms.DataStructures.Graph.AdjacencyList.DiGraph`1.GetAllInEdges * "> </ a >
333
- < h4 id ="Advanced_Algorithms_DataStructures_Graph_AdjacencyList_DiGraph_1_GetAllInEdges__0_ " data-uid ="Advanced.Algorithms.DataStructures.Graph.AdjacencyList.DiGraph`1.GetAllInEdges(`0) " > GetAllInEdges(T )</ h4 >
337
+ < a id ="Advanced_Algorithms_DataStructures_Graph_AdjacencyList_DiGraph_1_GetEnumerator_ " data-uid ="Advanced.Algorithms.DataStructures.Graph.AdjacencyList.DiGraph`1.GetEnumerator * "> </ a >
338
+ < h4 id ="Advanced_Algorithms_DataStructures_Graph_AdjacencyList_DiGraph_1_GetEnumerator " data-uid ="Advanced.Algorithms.DataStructures.Graph.AdjacencyList.DiGraph`1.GetEnumerator " > GetEnumerator( )</ h4 >
334
339
< div class ="markdown level1 summary "> </ div >
335
340
< div class ="markdown level1 conceptual "> </ div >
336
341
< h5 class ="decalaration "> Declaration</ h5 >
337
342
< div class ="codewrapper ">
338
- < pre > < code class ="lang-csharp hljs "> public List<T> GetAllInEdges(T vertex)</ code > </ pre >
343
+ < pre > < code class ="lang-csharp hljs "> public IEnumerator<T> GetEnumerator()</ code > </ pre >
344
+ </ div >
345
+ < h5 class ="returns "> Returns</ h5 >
346
+ < table class ="table table-bordered table-striped table-condensed ">
347
+ < thead >
348
+ < tr >
349
+ < th > Type</ th >
350
+ < th > Description</ th >
351
+ </ tr >
352
+ </ thead >
353
+ < tbody >
354
+ < tr >
355
+ < td > < a class ="xref " href ="https://docs.microsoft.com/dotnet/api/system.collections.generic.ienumerator-1 "> IEnumerator</ a > <T></ td >
356
+ < td > </ td >
357
+ </ tr >
358
+ </ tbody >
359
+ </ table >
360
+
361
+
362
+ < a id ="Advanced_Algorithms_DataStructures_Graph_AdjacencyList_DiGraph_1_HasEdge_ " data-uid ="Advanced.Algorithms.DataStructures.Graph.AdjacencyList.DiGraph`1.HasEdge* "> </ a >
363
+ < h4 id ="Advanced_Algorithms_DataStructures_Graph_AdjacencyList_DiGraph_1_HasEdge__0__0_ " data-uid ="Advanced.Algorithms.DataStructures.Graph.AdjacencyList.DiGraph`1.HasEdge(`0,`0) "> HasEdge(T, T)</ h4 >
364
+ < div class ="markdown level1 summary "> < p > Do we have an edge between the given source and destination?
365
+ Time complexity: O(1).</ p >
366
+ </ div >
367
+ < div class ="markdown level1 conceptual "> </ div >
368
+ < h5 class ="decalaration "> Declaration</ h5 >
369
+ < div class ="codewrapper ">
370
+ < pre > < code class ="lang-csharp hljs "> public bool HasEdge(T source, T dest)</ code > </ pre >
339
371
</ div >
340
372
< h5 class ="parameters "> Parameters</ h5 >
341
373
< table class ="table table-bordered table-striped table-condensed ">
@@ -349,7 +381,12 @@ <h5 class="parameters">Parameters</h5>
349
381
< tbody >
350
382
< tr >
351
383
< td > < span class ="xref "> T</ span > </ td >
352
- < td > < span class ="parametername "> vertex</ span > </ td >
384
+ < td > < span class ="parametername "> source</ span > </ td >
385
+ < td > </ td >
386
+ </ tr >
387
+ < tr >
388
+ < td > < span class ="xref "> T</ span > </ td >
389
+ < td > < span class ="parametername "> dest</ span > </ td >
353
390
< td > </ td >
354
391
</ tr >
355
392
</ tbody >
@@ -364,20 +401,20 @@ <h5 class="returns">Returns</h5>
364
401
</ thead >
365
402
< tbody >
366
403
< tr >
367
- < td > < a class ="xref " href ="https://docs.microsoft.com/dotnet/api/system.collections.generic.list-1 " > List </ a > <T> </ td >
404
+ < td > < a class ="xref " href ="https://docs.microsoft.com/dotnet/api/system.boolean " > Boolean </ a > </ td >
368
405
< td > </ td >
369
406
</ tr >
370
407
</ tbody >
371
408
</ table >
372
409
373
410
374
- < a id ="Advanced_Algorithms_DataStructures_Graph_AdjacencyList_DiGraph_1_GetAllOutEdges_ " data-uid ="Advanced.Algorithms.DataStructures.Graph.AdjacencyList.DiGraph`1.GetAllOutEdges * "> </ a >
375
- < h4 id ="Advanced_Algorithms_DataStructures_Graph_AdjacencyList_DiGraph_1_GetAllOutEdges__0_ " data-uid ="Advanced.Algorithms.DataStructures.Graph.AdjacencyList.DiGraph`1.GetAllOutEdges (`0) "> GetAllOutEdges (T)</ h4 >
411
+ < a id ="Advanced_Algorithms_DataStructures_Graph_AdjacencyList_DiGraph_1_InEdges_ " data-uid ="Advanced.Algorithms.DataStructures.Graph.AdjacencyList.DiGraph`1.InEdges * "> </ a >
412
+ < h4 id ="Advanced_Algorithms_DataStructures_Graph_AdjacencyList_DiGraph_1_InEdges__0_ " data-uid ="Advanced.Algorithms.DataStructures.Graph.AdjacencyList.DiGraph`1.InEdges (`0) "> InEdges (T)</ h4 >
376
413
< div class ="markdown level1 summary "> </ div >
377
414
< div class ="markdown level1 conceptual "> </ div >
378
415
< h5 class ="decalaration "> Declaration</ h5 >
379
416
< div class ="codewrapper ">
380
- < pre > < code class ="lang-csharp hljs "> public List <T> GetAllOutEdges (T vertex)</ code > </ pre >
417
+ < pre > < code class ="lang-csharp hljs "> public IEnumerable <T> InEdges (T vertex)</ code > </ pre >
381
418
</ div >
382
419
< h5 class ="parameters "> Parameters</ h5 >
383
420
< table class ="table table-bordered table-striped table-condensed ">
@@ -406,22 +443,20 @@ <h5 class="returns">Returns</h5>
406
443
</ thead >
407
444
< tbody >
408
445
< tr >
409
- < td > < a class ="xref " href ="https://docs.microsoft.com/dotnet/api/system.collections.generic.list -1 "> List </ a > <T></ td >
446
+ < td > < a class ="xref " href ="https://docs.microsoft.com/dotnet/api/system.collections.generic.ienumerable -1 "> IEnumerable </ a > <T></ td >
410
447
< td > </ td >
411
448
</ tr >
412
449
</ tbody >
413
450
</ table >
414
451
415
452
416
- < a id ="Advanced_Algorithms_DataStructures_Graph_AdjacencyList_DiGraph_1_HasEdge_ " data-uid ="Advanced.Algorithms.DataStructures.Graph.AdjacencyList.DiGraph`1.HasEdge* "> </ a >
417
- < h4 id ="Advanced_Algorithms_DataStructures_Graph_AdjacencyList_DiGraph_1_HasEdge__0__0_ " data-uid ="Advanced.Algorithms.DataStructures.Graph.AdjacencyList.DiGraph`1.HasEdge(`0,`0) "> HasEdge(T, T)</ h4 >
418
- < div class ="markdown level1 summary "> < p > do we have an edge between the given source and destination?
419
- O(1) complexity</ p >
420
- </ div >
453
+ < a id ="Advanced_Algorithms_DataStructures_Graph_AdjacencyList_DiGraph_1_OutEdges_ " data-uid ="Advanced.Algorithms.DataStructures.Graph.AdjacencyList.DiGraph`1.OutEdges* "> </ a >
454
+ < h4 id ="Advanced_Algorithms_DataStructures_Graph_AdjacencyList_DiGraph_1_OutEdges__0_ " data-uid ="Advanced.Algorithms.DataStructures.Graph.AdjacencyList.DiGraph`1.OutEdges(`0) "> OutEdges(T)</ h4 >
455
+ < div class ="markdown level1 summary "> </ div >
421
456
< div class ="markdown level1 conceptual "> </ div >
422
457
< h5 class ="decalaration "> Declaration</ h5 >
423
458
< div class ="codewrapper ">
424
- < pre > < code class ="lang-csharp hljs "> public bool HasEdge (T source, T dest )</ code > </ pre >
459
+ < pre > < code class ="lang-csharp hljs "> public IEnumerable<T> OutEdges (T vertex )</ code > </ pre >
425
460
</ div >
426
461
< h5 class ="parameters "> Parameters</ h5 >
427
462
< table class ="table table-bordered table-striped table-condensed ">
@@ -435,12 +470,7 @@ <h5 class="parameters">Parameters</h5>
435
470
< tbody >
436
471
< tr >
437
472
< td > < span class ="xref "> T</ span > </ td >
438
- < td > < span class ="parametername "> source</ span > </ td >
439
- < td > </ td >
440
- </ tr >
441
- < tr >
442
- < td > < span class ="xref "> T</ span > </ td >
443
- < td > < span class ="parametername "> dest</ span > </ td >
473
+ < td > < span class ="parametername "> vertex</ span > </ td >
444
474
< td > </ td >
445
475
</ tr >
446
476
</ tbody >
@@ -455,7 +485,7 @@ <h5 class="returns">Returns</h5>
455
485
</ thead >
456
486
< tbody >
457
487
< tr >
458
- < td > < a class ="xref " href ="https://docs.microsoft.com/dotnet/api/system.boolean " > Boolean </ a > </ td >
488
+ < td > < a class ="xref " href ="https://docs.microsoft.com/dotnet/api/system.collections.generic.ienumerable-1 " > IEnumerable </ a > <T> </ td >
459
489
< td > </ td >
460
490
</ tr >
461
491
</ tbody >
@@ -496,8 +526,8 @@ <h5 class="parameters">Parameters</h5>
496
526
497
527
< a id ="Advanced_Algorithms_DataStructures_Graph_AdjacencyList_DiGraph_1_RemoveVertex_ " data-uid ="Advanced.Algorithms.DataStructures.Graph.AdjacencyList.DiGraph`1.RemoveVertex* "> </ a >
498
528
< h4 id ="Advanced_Algorithms_DataStructures_Graph_AdjacencyList_DiGraph_1_RemoveVertex__0_ " data-uid ="Advanced.Algorithms.DataStructures.Graph.AdjacencyList.DiGraph`1.RemoveVertex(`0) "> RemoveVertex(T)</ h4 >
499
- < div class ="markdown level1 summary "> < p > remove an existing vertex frm graph
500
- O(V) complexity </ p >
529
+ < div class ="markdown level1 summary "> < p > Remove an existing vertex frm graph.
530
+ Time complexity: O(V) where V is the total number of vertices in this graph. </ p >
501
531
</ div >
502
532
< div class ="markdown level1 conceptual "> </ div >
503
533
< h5 class ="decalaration "> Declaration</ h5 >
@@ -521,6 +551,40 @@ <h5 class="parameters">Parameters</h5>
521
551
</ tr >
522
552
</ tbody >
523
553
</ table >
554
+ < h3 id ="eii "> Explicit Interface Implementations
555
+ </ h3 >
556
+
557
+
558
+ < a id ="Advanced_Algorithms_DataStructures_Graph_AdjacencyList_DiGraph_1_System_Collections_IEnumerable_GetEnumerator_ " data-uid ="Advanced.Algorithms.DataStructures.Graph.AdjacencyList.DiGraph`1.System#Collections#IEnumerable#GetEnumerator* "> </ a >
559
+ < h4 id ="Advanced_Algorithms_DataStructures_Graph_AdjacencyList_DiGraph_1_System_Collections_IEnumerable_GetEnumerator " data-uid ="Advanced.Algorithms.DataStructures.Graph.AdjacencyList.DiGraph`1.System#Collections#IEnumerable#GetEnumerator "> IEnumerable.GetEnumerator()</ h4 >
560
+ < div class ="markdown level1 summary "> </ div >
561
+ < div class ="markdown level1 conceptual "> </ div >
562
+ < h5 class ="decalaration "> Declaration</ h5 >
563
+ < div class ="codewrapper ">
564
+ < pre > < code class ="lang-csharp hljs "> IEnumerator IEnumerable.GetEnumerator()</ code > </ pre >
565
+ </ div >
566
+ < h5 class ="returns "> Returns</ h5 >
567
+ < table class ="table table-bordered table-striped table-condensed ">
568
+ < thead >
569
+ < tr >
570
+ < th > Type</ th >
571
+ < th > Description</ th >
572
+ </ tr >
573
+ </ thead >
574
+ < tbody >
575
+ < tr >
576
+ < td > < a class ="xref " href ="https://docs.microsoft.com/dotnet/api/system.collections.ienumerator "> IEnumerator</ a > </ td >
577
+ < td > </ td >
578
+ </ tr >
579
+ </ tbody >
580
+ </ table >
581
+ < h3 id ="implements "> Implements</ h3 >
582
+ < div >
583
+ < a class ="xref " href ="https://docs.microsoft.com/dotnet/api/system.collections.generic.ienumerable-1 "> System.Collections.Generic.IEnumerable<T></ a >
584
+ </ div >
585
+ < div >
586
+ < a class ="xref " href ="https://docs.microsoft.com/dotnet/api/system.collections.ienumerable "> System.Collections.IEnumerable</ a >
587
+ </ div >
524
588
</ article >
525
589
</ div >
526
590
0 commit comments