Witam, mam taki problem. Napisałem kod, który generuje macierz. Całość ma służyć do testowania algorytmów znajdowania MST. Poszczególne elementy macierzy oznaczają koszt drogi między elementami tablicy/węzła [i][j]. No i wygenerowaną macierz muszę teraz zapisać za pomocą listy jednokierunkowej. Ma ktoś pomysł co trzeba dodać do tego mojego programiku, by reprezentować to za pomocą listy?
Gdyby mój kod był nieczytelny, macierz znajduje się po prostu w tablicy topology
package boty_bez_klas;
import javax.swing.*;
import java.io.*;
import java.util.*;
public class boty_bez_klas_Main {
public static void main(String[] args) {
int size; //rozmiar tablicy-ilosc wezlow
String temp; //zmienna pomocnicza, tylko do przechowania wartosci przed konwersja string-integer
int i, j, zd, zg; //"zd" i "zg" zakres dolny i gorny do ustalenia prawdopodob
temp = JOptionPane.showInputDialog(null, "Podaj ilosc wezlow"); //wczytaj z klawiatury
size = Integer.parseInt(temp); //konwersja size to ilosc wezlow
int[][] topology = new int [size][size]; //topology to rozklad kosztow pomiedzy wezlami
Random r=new Random(); //generetor liczb los.
j=0;
for(i=0; i<size; i++){ //i!=j warunek, by po przekatnej byly same zera
zd=r.nextInt(27); // wartosci dobrane na okolo 30% (by ok 30% wylosowal
zg=r.nextInt(40); // z uwzglednieniem samych zer po przekatnej
if ((zd>zg)&&(i!=j)){ //warunek zd i zg granica dolna, gorna do obliczen prawdopodobienstwa
topology[i][j]=r.nextInt(10);
}
else { topology[i][j]=0; } //wyswietla tablice topology
System.out.print(topology[i][j]+" ");
if (i>=size-1) { i=-1; j++; System.out.print("\n"); } //wyswietla topology
if (j>=size) { break; }
}
j=1;
for(i=0; i<size-1; i++){
topology[i][j]=1; j++;
}
/////////////////////////////////////////////EDIT topology[][] porzadkowanie tablicy
///////////////////////////// w sumie nie jest to konieczne
int a,b; //tylko pomocnicze,
int l=0; //indeks-to samo co i,j
System.out.print("\n \n");
for(int k=0; k<size; k++){
a=topology[k][l];
b=topology[l][k];
if(a>0) { if((a>b)&&(b!=0)){ topology[k][l]=topology[l][k]; }
if((a<b)&&(b!=0)){ topology[l][k]=topology[k][l]; }
}
if((a==0)&&(b!=0)) { topology[k][l]=topology[l][k]; licz1++; licz0--;}
System.out.print(topology[k][l]+" ");
if (k>=size-1) { k=-1; l++; System.out.print("\n"); }
if (l>=size) { break; }
} ////////////////////////koniec porzadkowania tablicy topology
}
}
No tak to wyglada, generalnie tablice topology[size][size] trzeba zapisać/reprezentować za pomocą listy.
Będę bardzo wdzięczny za pomoc