Hola, necesito implementar el algoritmo de warshall en java, pero con listas de adyacencia.
Se me complica a la hora de usar listas.
Por que con la matriz marcamos con binarios si existe o no un camino que una un vértice i con j, en lista no se como representarlo.
Gracias
Checkate un tuto de listas. De momento, te explico algo.
Una lista es un objeto que permite almacenar todo tipo de objetos. La manera de indicar qué tipo de valores es mediante Generics, que no es más que la firma que se le pone a una lista y que dice qué tipo de objetos almacenará. Por ejemplo:
List<Integer> numbers = new ArrayList<>();
Al hacer ésto indicas que la lista numbers solo aceptará números enteros. Si intentas ingresar un double o un String, no te dejará siquiera compilar, de ésta manera protegemos nuestra aplicación de errores en tiempos de ejecución.
Para agregar un valor, lo hacemos a través del método add:
numbers.add(10);
Para obtener un valor, lo hacemos a través de la posición, como en los arrays:
Integer number = numbers.get(0);
Puedes ordenar también una lista, con el método sort de la clase Collections:
Collections.sort(numbers);
Ordenará la lista en forma ascendete.
Puedes también ordenar una lista de forma que tú desees, utilizando el objeto Comparator:
Collections.sort(numbers, new Comparator() {
@Override
return int compare(Integer v1, Integer v2) {
return (v2.intValue() > v1.intValue()) ? 1 : -1;
}
});
El método anterior ordena una lista de forma descendente.
Tienes muchos métodos a disposición, puedes consultar la lista completa aquí (https://docs.oracle.com/javase/8/docs/api/java/util/List.html)
Saludos.