/**
* @(#)Grafo.java
*
*
* @author
* @version 1.00 2010/3/3
*/
import java.util.*;
public class Grafo { private int A[][];
private int B[][];
public Grafo() { this.A= new int [6][6];
this.B= new int [6][6];
}
public void Introducir()
{ Scanner valores = new Scanner(System.in);
int tam=0;
for (int i=1;i<=5;i++)
{ System.out.println("Da el numero de vertices adyasentes al vertice "+i+" :"); tam = valores.nextInt();
if(tam!=0 && tam<=5)
{ System.out.println("Da los vertices adyasentes: "); for(int j=1;j<=tam;j++)
{ int dato=valores.nextInt();
A[i][dato]=1;
}
}
else
{ if(tam>5)
System.out.println("No pueden ser el numero dado"); }
}
}
public void Muestra()
{ System.out.println("\nEsta es la matriz de adyacencia"); for(int i=1;i<=5;i++)
{ for(int j=1;j<=5;j++)
{ System.out.print(" "+A[i][j]); }
System.out.print("\n"); }
}
public void Conexo()
{ //El grafo será conexo si existe un camino desde cualquier nodo del grafo hasta cualquier otro.
boolean ban;
int cont=0;
for(int i=1;i<=5;i++)
{ ban=false;
for(int j=1;j<=5;j++)
{ if (A[i][j]==1)
ban=true;
}
if (ban==true)
cont=cont+1;
}
if (cont==5)
System.out.println("\nEl grafo SI es Conexo"); else
System.out.println("\nEL grafo NO es Conexo"); }
public void Grado()
{ int c[]=new int [6];
int cont=0;
for(int i=1;i<=5;i++)
{ cont=0;
for(int j=1;j<=5;j++)
{ if (A[i][j]==1 || A[j][i]==1)
cont=cont+1;
}
c[i]=cont;
}
for(int i=1;i<=5;i++)
{ System.out.println("grado total del vertice "+i+" es: "+c[i]); }
}
public void Multiplica(int x)
{ int c[][]=new int[6][6];
int j, i, k;
if (x<=2)
{ for(i=1; i<=5; i++)
{ for(j=1; j<=5;j++)
{ for(k=1; k<=5; k++)
{ B[i][j]=B[i][j]+(A[i][k]*A[k][j]);
}
}
}
}
else
{ for(i=1; i<=5; i++)
{ for(j=1; j<=5;j++)
{ for(k=1; k<=5; k++)
{ c[i][j]=c[i][j]+(A[i][k]*B[k][j]);
}
}
}
this.B=c;
}
}
public void Camino(int i, int j)
{ boolean ban=false;
int cont=0;
while(ban==false && cont<5)
{ cont=cont+1;
if (cont==1)
{ if(A[i][j]==1)
{ System.out.println("El camino de "+i+" a "+j+" es de longitud: "+cont); ban=true;
}
}
else
{ Multiplica(cont);
if(B[i][j]!=0)
{ System.out.println("El camino de "+i+" a "+j+" es de longitud: "+cont); ban=true;
}
}
}
if (ban==false)
System.out.println("NO existe camino de "+i+" a "+j); }
public static void main (String[] args)
{ Scanner scan = new Scanner(System.in);
int o=0;
do
{ Grafo G=new Grafo();
G.Introducir();
G.Muestra();
G.Conexo();
G.Grado();
System.out.println("Desea buscar un camino en este grafo \n1.-SI\n2.-NO"); int op=scan.nextInt();
if(op==1)
{ System.out.println("De el vertice de partida"); int i=scan.nextInt();
System.out.println("De el vertice a llegar"); int j=scan.nextInt();
G.Camino(i,j);
}
System.out.println("^*****GRAFO EVALUADO*****"); System.out.println("\nDesea introducir otro grafo \n1.-SI\n2.-NO"); o=scan.nextInt();
}while(o==1);
}
}
Comentarios sobre la versión: 1.0 (3)
import java.util.ArrayList;
import java.util.Scanner;
import java.util.Collections;
/**
*
* @author ANTHONY
*/
public class Ejercicio1 {
/**
* @param args the command line arguments
*/
public static void ordenarPares(ArrayList<Integer> list){
ArrayList<Integer> listPares = new ArrayList<Integer>();
ArrayList<Integer> listPos = new ArrayList<Integer>();
int suma=0;
for(int i=0; i<list.size(); i++){
if (list.get(i) % 2 == 0){
listPares.add(list.get(i));
suma += list.get(i);
}
}
Collections.sort(listPares);
for(int i=0; i<listPares.size(); i++){
int index;
index = list.indexOf(listPares.get(i));
System.out.println("El elemento "+listPares.get(i)+" esta en la posicion "+ (index+1));
}
System.out.println("Los numeros pares ordenados: "+listPares);
System.out.println("La suma es "+suma);
}
public static void main(String[] args){
int n,num;
ArrayList<Integer> list = new ArrayList<Integer>();
Scanner leer= new Scanner(System.in);
System.out.println("\tEjercicio N°1");
System.out.print("Cuantos numeros desea ingresar: ");
n= leer.nextInt();
for(int i=0; i<n; i++){
num= leer.nextInt();
list.add(num);
}
System.out.println("Lista original: "+list);
ordenarPares(list);
}
}
import java.util.ArrayList;
import java.util.Scanner;
/**
*
* @author ANTHONY
*/
public class Ejercicio4 {
/**
* @param args the command line arguments
*/
public static Boolean LibreCuadrados(int numero){
for (int i = 2 ; i < numero ; i++){
if(numero % (i*i) == 0){
return false;
}
}
return true;
}
public static ArrayList<Integer> obtenerCuadrados(int cantidad){
ArrayList<Integer> numeros = new ArrayList<>();
int numeroIncremental = 3;
numeros.add(1);
numeros.add(2);
do{
if(LibreCuadrados(numeroIncremental)){
numeros.add(numeroIncremental);
}
numeroIncremental++;
}while (numeros.size() < cantidad);
return numeros;
}
public static void main(String[] args) {
ArrayList<Integer> numerosLibresCuadrados = new ArrayList<Integer>();
Scanner leer = new Scanner(System.in);
int numero = 0;
System.out.println("\tEjercicio N°4");
System.out.println("Ingrese la cantidad de numeros: ");
numero = leer.nextInt();
numerosLibresCuadrados = obtenerCuadrados(numero);
System.out.println("Numeros libre de cuadrados");
System.out.println(numerosLibresCuadrados);
}
}