mirror of
https://github.com/PetroProtsyk/SSharp
synced 2026-06-08 12:11:10 +00:00
51 lines
658 B
Plaintext
51 lines
658 B
Plaintext
//1
|
|
// 2
|
|
// 3
|
|
// 4
|
|
// 5
|
|
|
|
u = [ 1, 2 , 3 , 4 , 5];
|
|
v = [ [1,2], [2,3], [1,4], [1,5] ];
|
|
|
|
g = [
|
|
vertexes -> u,
|
|
edges -> v
|
|
];
|
|
|
|
function IsTree(g)
|
|
{
|
|
vert = new ArrayList ();
|
|
|
|
foreach (edge in g.edges)
|
|
{
|
|
if (!vert.Contains(edge[1]))
|
|
vert.Add(edge[1]);
|
|
else
|
|
return false;
|
|
}
|
|
|
|
if ( vert.Count == g.vertexes.Length-1 )
|
|
{
|
|
foreach (root in g.vertexes)
|
|
if ( ! vert.Contains(root))
|
|
{
|
|
g.root = root;
|
|
break;
|
|
}
|
|
|
|
return true;
|
|
}
|
|
else
|
|
return false;
|
|
}
|
|
|
|
IsTree(g);
|
|
|
|
root = g.root;
|
|
|
|
s = '';
|
|
foreach (x in v)
|
|
s = s + x[0]+'->' + x[1] + ', ';
|
|
|
|
Test.AreEqual('1->2, 2->3, 1->4, 1->5, ', s);
|