private void DrawVertex(System.Windows.Forms.PaintEventArgs e, Vertex vertex, VertexPosition vertexPosition) { int r = random.Next(50, 55); Pen p = new Pen(Brushes.DarkOliveGreen, 2); StringFormat stringFormat = new StringFormat(); stringFormat.Alignment = StringAlignment.Center; stringFormat.LineAlignment = StringAlignment.Center; e.Graphics.DrawEllipse(p, new Rectangle((int)vertexPosition.x - (r / 2) + xOffset, (int)vertexPosition.y - (r / 2) + yOffset, r, r)); e.Graphics.FillEllipse(Brushes.OliveDrab, new Rectangle((int)vertexPosition.x - (r / 2) + xOffset, (int)vertexPosition.y - (r / 2) + yOffset, r, r)); e.Graphics.DrawString(vertex.Label, SystemFonts.CaptionFont, Brushes.White, new RectangleF(vertexPosition.x - (r / 2) + xOffset, vertexPosition.y - (r / 2) + yOffset, r, r), stringFormat); }
public List<Vertex> BSF(Vertex s, bool visit = false) { List<Vertex> visited = new List<Vertex>(); Deque queue = new Deque(new List<Vertex>() { s }); while (queue.Count > 0) { Vertex v = queue.PopBack() as Vertex; if (visited.Contains(v)) continue; visited.Add(v); // visited.add(v) //// if visit: visit(v) List<Vertex> outVertices = OutVertices(v); foreach (var item in outVertices) { queue.PushFront(item); } } return visited; }
public Edge(Vertex v1, Vertex v2) { Vertex1 = v1; Vertex2 = v2; }
public Edge() { Vertex1 = new Vertex(); Vertex2 = new Vertex(); }