Analisis del programador
Enviado por Nelson Arenas • 29 de Febrero de 2016 • Apuntes • 1.098 Palabras (5 Páginas) • 105 Visitas
PROGRAMA DEL ALGORITMO DE PRIM
package algoritmoprim;
/**
*
* @author khuertas
*/
import java.util.*;
class AlgoritmoPrim{
int matrizadyacencia[ ][ ]; // CREAMOS LA MATRIZ QUE VA A CONTENER EL GRAFICO.
int vertices,e; //CREAMOS LAS VARIABLES A UTILIZAR.
int d[ ],p[ ],visitados[ ]; // DECLARAMOS 3 VECTORES.
void crearGrafo() // PRIMER METODO PARA LA CREACION DEL GRAFICO.
{
int a,b,peso;[pic 1]
Scanner kbd=new Scanner(System.in);
System.out.println("Digite el número de Vertices");
vertices=kbd.nextInt();
System.out.println("Digite el numero de Aristas");
e=kbd.nextInt();
matrizadyacencia=new int[vertices+1][vertices+1]; //DECLARAMOS LA MATRIZ CON LAS VARIABLES DE CREACION DE FILAS VERTICES+1 Y COLUMNAS VERTICES+1 COLUMNAS
for (int i=1;i<=vertices;i++) //EMPEZAMOS INICIALIZANDO LA MATRIZ CON CERO TANTO PARA LAS FILAS COMO PARA LAS COLUMNAS.
for (int j=1;j<=vertices;j++)
matrizadyacencia[i][j]=0;
for (int i=1;i<=e;i++)
{
System.out.println("Que Vertices desea conectar");[pic 2]
a=kbd.nextInt();
b=kbd.nextInt();
System.out.println("El peso de la arista es?:");
peso=kbd.nextInt();
matrizadyacencia[a][b]=matrizadyacencia[b][a]=peso;
}
}
void callprim()
{
visitados = new int[vertices+1];
d=new int[vertices+1];
p=new int[vertices+1];
for(int i=1;i<=vertices;i++)
p[i]=visitados[i]=0; //INICIALIZAMOS P Y VECTOR VISITADO EN 0
for (int i=1;i<=vertices;i++)
d[i]=10000; //INICIALIZAMOS EL VECTOR D CON NUMEROS GRANDES PARA QUE TOME COMO BASE EL MISMO.
prim(); //HACEMOS EL LLAMADO AL METODO.
}
void prim()
{
int c,current,mincost=0; // INICIALIZAMOS LA VARIABLE MINCOSTOS EN 0 Y SERÁ LA VARIABLE QUE CONTENGA LA SOLUCION.
current=1; //VERTICE
visitados[current]=1; //HACE AL VERTICE 1 COMO PRIMERO
d[current]=0;
c=1;
while(c!=vertices)
{
for(int i=1;i<=vertices;i++)
{
if(matrizadyacencia[current][i]!=0 && visitados[i]!=1)
if(matrizadyacencia[current][i]
{
d[i]=matrizadyacencia[current][i];
p[i]=current;
}
}
int min=10000;
for(int i=1;i<=vertices;i++)[pic 3]
{
if(visitados[i]!=1 && d[i]
{
min=d[i];
current=i;
}
}
visitados[current]=1; //ASIGNA AL VERTICE VISITADO CON 1
c=c+1;
}
for(int i=1;i<=vertices;i++)[pic 4]
mincost +=d[i];
System.out.println("Minimo Costo: ="+mincost);
}
public static void main(String args[])
{
AlgoritmoPrim g=new AlgoritmoPrim();
g.crearGrafo();
g.callprim();
}
}
PRUEBA DE ESCRITORIO
[pic 5]
[pic 6][pic 7][pic 8]
[pic 9]
[pic 10][pic 11]
[pic 12][pic 13][pic 14]
MENOR COSTO: 6
PROGRAMA DEL LABERINTO
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package laberinto;
/**
*
* @author khuertas
*/
public class Laberinto {
static final char ocupado='█';
static final char libre='L';
static final char marca='*';[pic 15]
...