Bom dia Senhores,
Estou desenvolvendo um interface gráfica para representação de grafos. O objetivo é permitir a execução de algoritmos de busca.
Estou tendo o seguinte problema.
Os meus vértices possuem um id sequencial a partir de 0.
Quando criei uma opção para representar remover um vértice qualquer me deparo com o seguinte problema:
Não consigo criar uma representação de matriz de adjacência bem como a de incidência.
public Object[][] getMatrizAdjacencia(){
Object adj[][]= new Object[this.getNumeroVertice()+1][this.getNumeroVertice()+1];
List<Vertice> tmp = new ArrayList<Vertice>();
//inicializa matriz de adjacência
for (int i = 1; i <= this.getNumeroVertice(); i++) {
for (int j = 1; j <= this.getNumeroVertice(); j++) {
adj[i][j]=0;
}
}
int k=0;
//inicializa busca por vértices adjacentes
//nosso problema está aqui!!!
for (int linha=0;linha<this.getNumeroVertice();linha++) {
tmp=getListaVertices().get(linha).getVerticesAdjacentes();//retorna um ArrayList><Vertices> dos vertices adjacentes ao id do vértice cuja posição //encontra-se na primeira posição da lista de vértices;
for(int coluna=0;coluna<tmp.size();coluna++)
{
k=tmp.get(coluna).getId();
adj[linha+1][k+1]=1;
}
}
//inicializa cabeçalhos
for (int i = 0; i >< this.getNumeroVertice(); i++) {
adj[i+1][0]=this.getListaVertices().get(i).getRotulo();
adj[0][i+1]=this.getListaVertices().get(i).getRotulo();
}
adj[0][0]=" ";
return adj;
}
Pensei em criar uma regra de deslocamento do tipo. Se o id do vértice for diferente da coluna deslocar a diferença entre o id do vértice e da coluna.
Contudo, não encontrei nenhum jeito adequado de fazer isso.
Caso alguém possa me orientar ou tiver uma idéia melhor agradeço.
Abraços, Alan