Ainda não tive a disciplina de grafos na minha faculdade, e to um pouco perdida pra fazer um algoritmo aqui.
Preciso fazer um programa em java que receba como entrada o número de nós e o número de ligações entre esses nós.
Ai depois eu irei guardar num arquivo a ligações feitas, por exemplo, guardar a ligação que vai do nó 1 ao nó 2 desta forma: FROM 1; TO: 2; mas isto eu consigo.
O meu problema, está em como fazer pra guardar as ligações, pra gerar diferentes ligações, dados os nós e o número máximo de ligações.
Alguém pode clarear minhas ideias? hehe
Sim, eu preferia fazer uma matriz primeiro hehe.
Eu estava procurando e também encontrei a matriz de adjacencia, porém ainda não consigo pensar mto bem no código.
é simples, vc pode implementar usando uma matriz booleana boolean[][] onde o numero de nos é o tamanho da matriz (x,y) dai é só verificar qual a conectividade dela e ir preenchendo as conectividades na matriz… Faça primeiro na mão, desenhe o grafo e preencha a matriz, fazendo isto vc terá uma ideia de como implementa-lo…
Bem se não existe nenhum critério, só um numero de nós e um numero de conexões e o programa deve devolver todas as conexões possiveis, um algoritimo de força bruta resolve seu problema, digamos que vc use a logica das matrizes booleanas então cada true representa uma conexão no caso se tivesse por exemplo 2 nós e quisesse listar todas as possiveis conexões com o numero maximo de 1 conexão:
[1,0]
[0,0]
[0,1]
[0,0]
[0,0]
[1,0]
[0,0]
[0,1]
Isto no caso usando apenas 1 ligação, se for usar todas as possiveis iria preencher a matriz até todos ficarem 1(true), ou seu algoritimo simplismente vai preencher a matriz de true e false de todas as maneiras possiveis respeitando o numero maximo de ligações (a quantidade de “true” que ele pode ter)