public static Recorrido Concatenar(Recorrido R1, Recorrido R2) { Vertice[] Retorno = new Vertice[R1.Longitud + R2.Longitud - 1]; if (R1.Grafo == R2.Grafo) { for (int i = 0; i <= Retorno.GetUpperBound(0); i++) { if (i <= R1.Vertices.GetUpperBound(0)) { Retorno[i] = R1.Vertices[i]; } else { Retorno[i] = R2.Vertices[i - R1.Vertices.GetUpperBound(0)]; } } return new Recorrido(R1.Grafo, Retorno); } else { throw new ExcepcionDiscreta("RECORRIDO(CONCATENAR): No se pueden concatenar dos recorridos de grafos diferentes"); } }
public static Grafo SubGrafo(Grafo Grafo, Recorrido Recorrido) { return SubGrafo(Grafo, Recorrido.Vertices); }