Example #1
0
        /*
         * Instancia um novo grafo por lista de adjacencia
         * Apartir de uma lista de vertices e uma lista de arestas
         * E presiso informar se o grafo gerado sera ou não direcionado, e sua função de comparação
         */
        public Graph(List <Vertex <T> > vertices, List <Edge <T> > edges, CompareToDelegate <T> compareToDelegate, bool isDirected = false)
        {
            this.compareToDelegate = compareToDelegate;
            this.isDirected        = isDirected;
            Clean();
            foreach (Vertex <T> vertex in vertices)
            {
                AddVertex(vertex.value);
            }

            foreach (Edge <T> edge in edges)
            {
                AddEdge(edge.from.value, edge.to.value, edge.weight);
            }
        }
Example #2
0
 public AdjacencyMatrix(List <Vertex <T> > vertices, List <Edge <T> > edges, CompareToDelegate <T> compareToDelegate, bool isDirected = false) : base(vertices, edges, compareToDelegate, isDirected)
 {
 }
Example #3
0
 public AdjacencyMatrix(CompareToDelegate <T> compareToDelegate, bool isDirected = false) : base(compareToDelegate, isDirected)
 {
     Clean();
 }
Example #4
0
 public Graph(CompareToDelegate <T> compareToDelegate, bool isDirected = false)
 {
     this.compareToDelegate = compareToDelegate;
     this.isDirected        = isDirected;
 }
Example #5
0
 /*
  * Instanciar um novo grafo por lista de adjacencia vaziu
  * Exige apenas a informação de se o grafo sera ou não direcionado e a sua função de comparação
  */
 public AdjacencyList(CompareToDelegate <T> compareToDelegate, bool isDirected = false) : base(compareToDelegate, isDirected)
 {
     adjList = new Dictionary <Vertex <T>, List <Edge <T> > >();
 }
Example #6
0
 public Vertex(T value, CompareToDelegate <T> compareTo)
 {
     this.compareTo = compareTo;
     this.value     = value;
 }