Foro de elhacker.net

Programación => Java => Mensaje iniciado por: gallagher_daniel en 11 Junio 2015, 01:09 am



Título: Ayuda con Algoritmo de warshall
Publicado por: gallagher_daniel en 11 Junio 2015, 01:09 am
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


Título: Re: Ayuda con Algoritmo de warshall
Publicado por: Usuario Invitado en 11 Junio 2015, 15:41 pm
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:

Código
  1. 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:

Código
  1. numbers.add(10);

Para obtener un valor, lo hacemos a través de la posición, como en los arrays:

Código
  1. Integer number = numbers.get(0);

Puedes ordenar también una lista, con el método sort de la clase Collections:

Código
  1. Collections.sort(numbers);

Ordenará la lista en forma ascendete.

Puedes también ordenar una lista de forma que tú desees, utilizando el objeto Comparator:

Código
  1. Collections.sort(numbers, new Comparator() {
  2. @Override
  3. return int compare(Integer v1, Integer v2) {
  4. return (v2.intValue() > v1.intValue()) ? 1 : -1;
  5. }
  6. });

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.