Ejemplo n.º 1
0
        public void AddVertex(long id, T data)
        {
            if (AllVertex.ContainsKey(id))
            {
                return;
            }

            Vertex <T> v = new Vertex <T>(id, data);

            AllVertex.Add(id, v);

            NumberOfVertices++;
        }
Ejemplo n.º 2
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="vertex"></param>
        public void AddVertex(Vertex <T> vertex)
        {
            if (AllVertex.ContainsKey(vertex.Id))
            {
                return;
            }

            AllVertex.Add(vertex.Id, vertex);

            foreach (var e in vertex.GetAdjEdges())
            {
                AllEdges.Add(e);
                NumberOfEdges++;
            }

            NumberOfVertices++;
        }
Ejemplo n.º 3
0
        public void AddEdge(long id1, long id2, int weight)
        {
            Vertex <T> v1 = null;
            Vertex <T> v2 = null;

            if (!AllVertex.ContainsKey(id1))
            {
                v1 = new Vertex <T>(id1);
                AddVertex(v1);
            }
            else
            {
                v1 = AllVertex[id1];
            }

            if (!AllVertex.ContainsKey(id2))
            {
                v2 = new Vertex <T>(id2);
                AddVertex(v2);
            }
            else
            {
                v2 = AllVertex[id2];
            }

            Edge <T> e = new Edge <T>(v1, v2, IsDirected, weight);

            AllEdges.Add(e);

            v1.AddAdjacentVertex(e, v2);
            if (!IsDirected)
            {
                v2.AddAdjacentVertex(e, v1);
            }

            NumberOfEdges++;
        }