/**
* @(#)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);
}
}