Esempio n. 1
0
        public void removeVertex(IVertex <Vertex> vertex)
        {
            AdjMapGraphVertex v = validate(vertex);

            foreach (IEdge <Edge> e in v.getOutgoing().Values)
            {
                removeEdge(e);
            }
            foreach (IEdge <Edge> e in v.getIncoming().Values)
            {
                removeEdge(e);
            }
            vertices.Remove(v);
        }
Esempio n. 2
0
        public void removeEdge(IEdge <Edge> edge, bool directed = true)
        {
            AdjMapGraphEdge   e  = validate(edge);
            AdjMapGraphVertex v0 = validate(e.getEndpoints()[0]);
            AdjMapGraphVertex v1 = validate(e.getEndpoints()[1]);

            v0.getOutgoing().Remove(v1);
            v1.getIncoming().Remove(v0);

            if (!directed)
            {
                if (getEdge(v1, v0) == null)
                {
                    throw new ArgumentException("Inverse edge does not exist");
                }
                else
                {
                    v1.getOutgoing().Remove(v0);
                    v0.getIncoming().Remove(v1);
                }
            }
        }