diff --git a/InstallerSamples/Algorithms/GraphTraverse.pas b/InstallerSamples/Algorithms/GraphTraverse.pas new file mode 100644 index 000000000..6669b6c44 --- /dev/null +++ b/InstallerSamples/Algorithms/GraphTraverse.pas @@ -0,0 +1,16 @@ +// Обход ориентированного графа в глубину +procedure TraverseDepth(gr: array of array of integer; p: array of boolean; x: integer); +begin + Print(x); + p[x] := True; + foreach var y in gr[x] do + if not p[y] then + TraverseDepth(gr,p,y); +end; + +begin + var gr := [[1, 2], [3], [1, 4], [5], [6], [4, 7], [], []]; + var p := [False] * gr.Count; + TraverseDepth(gr,p,0); +end. +