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;
        }
Пример #3
0
 public Edge(Vertex v1, Vertex v2)
 {
     Vertex1 = v1;
     Vertex2 = v2;
 }
Пример #4
0
 public Edge()
 {
     Vertex1 = new Vertex();
     Vertex2 = new Vertex();
 }