Теми рефератів
> Реферати > Курсові роботи > Звіти з практики > Курсові проекти > Питання та відповіді > Ессе > Доклади > Учбові матеріали > Контрольні роботи > Методички > Лекції > Твори > Підручники > Статті Контакти
Реферати, твори, дипломи, практика » Курсовые проекты » Розробка програми для пошуку максимально віддалених вершин у графі

Реферат Розробка програми для пошуку максимально віддалених вершин у графі





я списків ребер і вершин:


public void Clear ()

{

nodes.Clear ();

edges.Clear ();

}


. Метод Draw відповідає за графічне відображення графа на переданій в функцію графічному контексті:


public void Draw (ref Graphics g)

{

Pen pen=new Pen (Color.Black, 5);

for (int i=0; i lt; edges.Count; i ++)

{

Point xFrom, xTo;

int node1, node2;

edges [i] .GetLinkedNodes (out node1, out node2);

xFrom=new Point (nodes [node1] .GetPositionX (), nodes [node1] .GetPositionY ());

xTo=new Point (nodes [node2] .GetPositionX (), nodes [node2] .GetPositionY ());

g.DrawLine (pen, xFrom, xTo);

}

for (int i=0; i lt; nodes.Count; i ++)

{

GraphNode node=nodes [i];

if (node.isExists ())

{

bool isOkNode=false;

foreach (GraphEdge edge in edges)

{

int node1, node2;

edge.GetLinkedNodes (out node1, out node2);

if (node1 == i || node2 == i)

{

isOkNode=true;

break;

}

}

if (isOkNode)

g.DrawImage (imgOkNode, node.GetPositionX () - imageCenter, node.GetPositionY () - imageCenter);

else

g.DrawImage (imgNode, node.GetPositionX () - imageCenter, node.GetPositionY () - imageCenter);

g.DrawString ((i + 1) .ToString (), font, Brushes.Black, node.GetPositionX () - 12, node.GetPositionY () - 12);

}

}

}


4. Метод EdgeAdd пов'язує вершини, що мають зазначені індекси (передані в метод в якості параметрів), якщо вершини до цього ще не були пов'язані:


public int EdgeAdd (int node1, int node2)

{

bool canLink=true;

foreach (GraphEdge edge in edges)

{

int n1, n2;

edge.GetLinkedNodes (out n1, out n2);

if ((n1 == node1 || n1 == node2) amp; amp; (n2 == node1 || n2 == node2))

{

canLink=false;

break;

}

}

if (canLink)

{

edges.Add (new GraphEdge (node1, node2));

return edges.Count - 1;

}

return - 1;

}


. Метод EdgeRemove видаляє ребро з заданим індексом:


public bool EdgeRemove (int id)

{

if (edges.Count gt; id amp; amp; edges.Count gt; - 1)

{

edges.RemoveAt (id);

}

return false;

}


. Метод Load служить для завантаження графа з файлу з заданим ім'ям, що передається як параметр:


public bool Load (string filename)

{

FileStream fs=new FileStream (filename, FileMode.Open, FileAccess.Read);

BinaryReader r=new BinaryReader (fs);

string sign=r.ReadString ();

if (sign.Equals (signature, StringComparison.InvariantCulture))

{

Clear ();

int nodeCount=r.ReadInt32 ();

int edgeCount=r.ReadInt32 ();

for (int i=0; i lt; nodeCount; i ++)

{

bool isValide=r.ReadBoolean ();

NodeAdd (r.ReadInt32 (), r.ReadInt32 (), isValide);

}

for (int i=0; i lt; edgeCount; i ++)

{

EdgeAdd (r.ReadInt32 (), r.ReadInt32 ());

}

r.Close ();

return true;

Назад | сторінка 5 з 11 | Наступна сторінка





Схожі реферати:

  • Реферат на тему: Розробка Web-додатки з використанням JavaScript каркаса Node.js
  • Реферат на тему: Громадська думка в контексті public relations
  • Реферат на тему: Return to materialism
  • Реферат на тему: Організація Public Relations
  • Реферат на тему: The culture of public speaking