Computing">
Nothing Special   »   [go: up one dir, main page]

Control/Grafo Java

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 3

15/3/23, 14:46 Grafo.

java

Control\Grafo.java

package Control;
 
import Modelo.Ciudad;
import Modelo.Enlace;
import java.util.ArrayDeque;
import java.util.ArrayList;
import java.util.Deque;
import javax.swing.JTable;
import javax.swing.table.DefaultTableModel;
 
public class Grafo
{
private ArrayList<Nodo> Lista = new ArrayList<Nodo>();
 
public ArrayList<Nodo> getLista() {
return Lista;
}
 
public void setLista(ArrayList<Nodo> Lista) {
this.Lista = Lista;
}
 
// Agregar Nodo
public void Agregar_Nodo(Ciudad Elemento){
Nodo nuevo = new Nodo(Elemento);
Lista.add(nuevo);
}
 
// Eliminar Nodo
public void Eliminar_Nodo(String Nombre){
Lista.remove(Buscar_Ciudad(Nombre));
Eliminar_Enlaces(Nombre);
}

// Buscar Ciudad
public Nodo Buscar_Ciudad(String Nombre){
for(int i = 0; i < Lista.size(); i++){
if (Lista.get(i).getElemento().getNombre().equals(Nombre)) {
return Lista.get(i);
}
}
return null;
}

// Eliminar enlaces
public void Eliminar_Enlaces(String Nombre){
for (int x = 0; x < Lista.size(); x++) {
ArrayList<Enlace> Aristas = Lista.get(x).getAristas();
for (int y = 0; y < Aristas.size(); y++) {
if(Aristas.get(y).getEnlace().getElemento()
.getNombre().equals(Nombre)){
Aristas.remove(y);
}
}
}
}

localhost:59346/7f1fa143-16f3-401e-bfb7-c8f4752b73e6/ 1/3
15/3/23, 14:46 Grafo.java

// Agregar Enlace
public void Agregar_Enlace (String Origen, String Destino, int Peso){
Nodo CiudadOrigen = Buscar_Ciudad(Origen);
Nodo CiudadDestino = Buscar_Ciudad(Destino);
Enlace Arista1 = new Enlace(Peso, CiudadDestino);
CiudadOrigen.Agregar_Arista(Arista1);
Enlace Arista2 = new Enlace(Peso, CiudadOrigen);
CiudadDestino.Agregar_Arista(Arista2);
}

// Eliminar Enlace
public void Eliminar_Enlace( String Origen, String Destino){
Nodo CiudadOrigen = Buscar_Ciudad(Origen);
int Pos = CiudadOrigen.Buscar_Arista(Destino);
if(Pos != -1){
CiudadOrigen.Elimina_Arista(Pos);
}
Nodo CiudadDestino = Buscar_Ciudad(Destino);
int Pos2 = CiudadDestino.Buscar_Arista(Origen);
if(Pos2 != -1){
CiudadDestino.Elimina_Arista(Pos2);
}
}

// Recorrido Anchura
public void Recorrido_Anchura(JTable Control){
String[] Cabecera = {"Ciudad","Poblacion",""};
DefaultTableModel modTabla = new DefaultTableModel(Cabecera,0);
Control.setModel(modTabla);
for (int i = 0; i < Lista.size(); i++) {
Lista.get(i).setVisitado(false);
}Deque<Nodo> Cola = new ArrayDeque<Nodo>();
Nodo Actual;
 
if(Lista.isEmpty() == false){
Lista.get(0).setVisitado(true);
Cola.addLast(Lista.get(0));
while(Cola.isEmpty() == false){
Actual = Cola.removeFirst();
modTabla.addRow(Actual.getElemento().getRegistro());
String Enlaces = "";
for (int i = 0; i < Actual.getAristas().size(); i++) {
Enlace Arista = Actual.getAristas().get(i);
Nodo Vecino = Arista.getEnlace();
if(Vecino.isVisitado() == false){
Cola.addLast(Vecino);
Vecino.setVisitado(true);
}
Enlaces = Enlaces +
" [ " +
Vecino.getElemento().getNombre() +
" ( " + Arista.getPeso() +
" ) ]";
}
if(modTabla.getColumnCount() > 0){
modTabla.setValueAt(Enlaces,
modTabla.getRowCount() - 1, 2);
}
}

localhost:59346/7f1fa143-16f3-401e-bfb7-c8f4752b73e6/ 2/3
15/3/23, 14:46 Grafo.java

}
}
}

localhost:59346/7f1fa143-16f3-401e-bfb7-c8f4752b73e6/ 3/3

También podría gustarte