public int[][] listaAristas(Grafo g) { // ineficiente para grafos dispersos int orden = g.orden(); int[][] lista = new int[2][g.cantAristas()]; int contador = 0; for (int i = 0; i < orden; i++) { for (int j = i + 1; j < orden; j++) { if (g.hayArista(i, j)) { lista[1][contador] = i; lista[2][contador] = j; contador++; } } } return lista; }
public int[][] listaAristas2(Grafo g) { int n = g.orden(); int[][] a = new int[g.cantAristas()][2]; int k = -1; List<Integer> list; for (int i = 0; i < n; i++) { list = g.getListaAdy(i); if (!list.isEmpty()) { for (Integer aList : list) { int w = aList; if (w > i) { k++; a[k][0] = i; a[k][1] = w; } } } } return a; }