lunes, 12 de mayo de 2014

Modulo Estructuras de Redes


Blog Diseñado para Presentar los programas realizados en la materia mediante JCreator, con una breve descripción de los mismos.

Ensayo Estructuras de Datos

Una estructura de datos es una clase de datos que se puede caracterizar por su organización y operaciones definidas sobre ella, estos pueden ser simples o estructurados, las simples son los datos (entero, real, carácter etc.) mientras que los estructurados se dividen en estáticos y dinámicos.

Datos Estáticos [Arreglo, Cadena, Registro] Este tipo de datos están limitados por el tamaño de memoria.

Datos Estructurados [Lista ya sea Pila o Cola, lista Enlazada,  Árbol y Grafo] Las estructuras de datos dinámicas no tienen las limitaciones o restricciones en el tamaño de memoria ocupada que son propias de las estructuras estáticas. Mediante el uso de un tipo de datos específico, denominado puntero, es posible construir estructuras de datos dinámicas que son soportadas por la mayoría de los lenguajes, y en aquellos que sí tienen estas características ofrecen soluciones eficaces y efectivas en la solución de problemas complejos.

Aquí mismo se Encuentra una subdivisión que son: Lineales (Pila Cola y Listas Enlazadas) y las no lineales (Arboles y Grafos)

Diferencia Entre  Estáticos y Estructurados

Una característica importante que diferencia a los tipos de datos es la siguiente: los tipos de datos simples tienen como característica común que cada variable representa a un elemento; los tipos de datos estructurados tienen como característica común que un identificador (nombre) puede representar múltiples datos individuales, pudiendo cada uno de éstos ser referenciado independientemente.

Entendido lo anterior podemos decir que las Estructura de datos no son Datos al azar sin orden o lógica o sin alguna característica común que sea capaz de agruparlos.

Conclusión

Las estructuras de datos son colecciones de información que tratan de generar modelos a través de métodos que representen de manera eficiente y sencilla acciones o procesos cotidianos aplicados a sistemas para el manejo de información, dependiendo de las necesidades se puede realizar de diferentes ajustes (Esto mediante alguna de las estructuras ya sea lineal o no lineal) para crear de manera concreta un proceso que sea útil en el programa mismo o llamarlo desde algún otro.

miércoles, 30 de abril de 2014

Programa Listas Simples Enlazadas

import java.util.Scanner;
class Nodo
    {
    int Elemento;
    Nodo Siguiente;//crea el nodo con enlase a otro
   
    public Nodo(int x)
    {
    Elemento=x;
    Siguiente=null;//aterriza el nodo listo para ligarse a otro nodo
    }
    }
public class ListaSimple {
     
    /**
     * Creates a new instance of <code>ListaSimple</code>.
     */
    public ListaSimple() {
    }
 
    /**
     */
    private static Nodo Frente=null, Final=null;
    public static void main(String[] args)
    {
      //Declaracion de variables y creacion del arreglo
    int Max,Opcion;
    int [] listasim;
   
    Scanner entrada = new Scanner (System.in);
   
        do
        {
        System.out.println("---------------Menu----------------");
        System.out.println(" 1)Insertar (Ingresar Datos a la Lista) ");
        System.out.println(" 2)Eliminar (Eliminar datos de la Lista) ");
        System.out.println(" 3)Presentar Lista ");
        System.out.println(" 4)Limpia Lista ");
        System.out.println(" 5)Salir /n");
        System.out.println(" Seleccione un opcion ");
Opcion =entrada.nextInt();

//Alimentando la opcion elegida mendiante un switch
switch (Opcion)
        {
        case 1 :  Insertar();
        break;

case 2 :  Eliminar ();
        break;

case 3 :  Presentar();
        break;

case 4 :  Frente=null;
 Final=Frente;
 System.out.println("La Lista se ha vaciado");
        break;

case 5 :  break;
default : System.out.println(" Opcion Incorrecta Teclea una del Menu ");
break;
        }
        }while (Opcion !=5);
    }
    public static void Insertar ()
{
int valor;
Nodo aux;
Scanner entrada= new Scanner (System.in);
System.out.println("Ingrese Elemento: ");
valor=entrada.nextInt();
aux=new Nodo(valor);
if (Frente == null)
Frente=aux;
else Final.Siguiente=aux;
Final=aux;

}
public static void Presentar ()
{
Nodo aux;
if (Frente == null)
System.out.println("Lista Vacia");

else
{
for(aux=Frente;aux!=null;)
{
System.out.println("Elemento "+aux.Elemento);
aux=aux.Siguiente;
}
}
}
public static void Eliminar ()
{
if(Frente==null)
System.out.println("No existen Elementos por Eliminar Lista Vacia");
else
{
Frente = Frente.Siguiente;
System.out.println("Primer Elemento Eliminado");
}
}
}

lunes, 28 de abril de 2014

Cola Circular

//Programa de Colas con Arreglos en Forma Circular
import java.util.Scanner;
public class ColaCircular
{

public  ColaCircular()
    {
   
    }
    public static int Frente=0, Final=0;
    public static void main(String[] args)
{
    //Declaracion de variables y creacion del arreglo
    int Max,Opcion;
    int [] colacir;
   
    Scanner entrada = new Scanner (System.in);
   
    //Solicita el tamaño del arreglo
    System.out.println ("Ingrese el tamaño del arreglo");
    Max=entrada.nextInt();
    colacir = new int [Max];
        Final=Max;
        Final = Max - 1;
    Frente = Siguiente(Final,Max);
        // Creando menu de datos
        do
        {
        System.out.println("---------------Menu----------------");
        System.out.println(" 1)Insertar (Ingresar Datos a Cola) ");
        System.out.println(" 2)Eliminar (Eliminar datos de Cola) ");
        System.out.println(" 3)Presentar Cola ");
        System.out.println(" 4)Limpia Cola ");
        System.out.println(" 5)Salir /n");
        System.out.println(" Seleccione un opcion ");
Opcion =entrada.nextInt();

//Alimentando la opcion elejida mendiante un swich
switch (Opcion)
        {
        case 1 :  Insertar(colacir,Max);
        break;

case 2 :  Eliminar (colacir,Max);
        break;

case 3 :  Presentar(colacir,Max);
        break;

case 4 :  Frente=0;
 Final=Max;
 System.out.println("La pila se ha vaciado");
        break;

case 5 :  break;
default : System.out.println(" Opcion Incorrecta Teclea una del Menu ");
break;
        }
        }while (Opcion !=5);
    }


public static int Siguiente (int p, int m) //alojara la posicion
{
return (p+1) % m;//%modulo extrae el residuo de una division estrallendo
//el valor del siguiente de fin
}
public static void Insertar (int[]c, int m)
{
Scanner entrada= new Scanner (System.in);
System.out.println(Siguiente(Final,m));
if(Frente==Siguiente(Siguiente(Final,m),m))
System.out.println("Cola LLENA");
else
{
System.out.println("Ingrese el valor");
Final=Siguiente(Final,m);
c[Final]=entrada.nextInt();

}
}
public static void Eliminar(int[]p, int m)
{
if (Frente==Siguiente(Final,m))
{
System.out.println("   Cola Vacia");
}
else
{
System.out.println("Eliminado el elemento <<"+Frente+">> =" +p[Frente]);
Frente=Siguiente(Frente,m);
}

}
public static void Presentar(int []p, int m)
{
        for(int i=Frente; i!=Siguiente(Final,m); i++)
      {
        System.out.println("Cola["+i+"] = "+p[i]);
      }
     }
   
}

jueves, 10 de abril de 2014

Programa Cola Lineal Con Arreglos

/*Programa para Crear Colas con arreglos y metodos mas bucles*/


import java.util.Scanner;
public class Colas
{
       
    public Colas()
    {
   
    }
    public static int Frente=0, Final=0;
    public static void main(String[] args)
    {
    //Declaracion de variables y creacion del arreglo
    int Max,Opcion;
    int [] cola;
    Scanner entrada = new Scanner (System.in);
   
    //Solicita el tamaño del arreglo
    System.out.println ("Ingrese el tamaño del arreglo");
    Max=entrada.nextInt();
    cola = new int [Max];
       
        // Creando menu de datos
        do
        {
        System.out.println("---------------Menu----------------");
        System.out.println(" 1)Insertar (Ingresar Datos a Cola) ");
        System.out.println(" 2)Eliminar (Eliminar datos de Cola) ");
        System.out.println(" 3)Presentar Cola ");
        System.out.println(" 4)Limpia Cola ");
        System.out.println(" 5)Salir /n");
        System.out.println(" Seleccione un opcion ");
Opcion =entrada.nextInt();

//Alimentando la opcion elejida mendiante un swich
switch (Opcion)
        {
        case 1 :  Insertar(cola,Max);
        break;

case 2 :  Eliminar (cola);
        break;

case 3 :  Presentar(cola, Frente, Final);
        break;

case 4 :  Frente=0;
 Final=0;
 System.out.println("La pila se ha vaciado");
        break;

case 5 :  break;
default : System.out.println(" Opcion Incorrecta Teclea una del Menu ");
break;
        }
        }while (Opcion !=5);
    }

//Declarar procedimiento mediante metedos
public static void Insertar (int []c, int m) //
{
Scanner ent = new Scanner(System.in);

if (Final<m)//Verifica que exista espacio para ingresar Valor
{
System.out.println("Ingrese el valor");
c[Final]= ent.nextInt();
Final++;
if(Final==1)
{
Frente=Final;
}
}
else
{
System.out.println("COLA LLENA DESBORDAMIENTO");
}

}
public static void Eliminar(int []c)
{
if (Frente>Final || Final==0)
{
System.out.println("LA COLA ESTA VACIA No existen elementos a Eliminar");
}
else
{
System.out.println("Se elimino el elemento c["+Frente+"]= "+c[Frente-1]);
Frente++;
}
}
public static void Presentar(int []c, int Frente, int Final)
{
if (Frente>Final || Final==0)
{
System.out.println("LA COLA ESTA VACIA");
}
else
{
System.out.println("--------Mostrando Elementos de Cola----------");
for (int i=Frente;i<=Final;i++)
            System.out.println("Cola ["+i+"]"+c[i-1]);
   
}
}
}

martes, 8 de abril de 2014

Creación de pilas con arreglos, métodos y bucles

/*Programa para Crear Pilas con arreglos y metodos mas bucles*/


import java.util.Scanner;
public class Pilas
{
       
    public Pilas()
    {
    }
   
    public static void main(String[] args)
    {
    //Declaracion de variables y creacion del arreglo
    int n,Opcion,Cima=0;
    int [] pila;
    Scanner entrada = new Scanner (System.in);
   
    //Solicita el tamaño del arreglo
    System.out.println ("Ingrese el tamaño del arreglo");
    n=entrada.nextInt();
    pila = new int [n];
       
        // Creando menu de datos
        do
        {
        System.out.println("---------------Menu----------------");
        System.out.println(" 1)Push (Ingresar Datos a Pila) ");
        System.out.println(" 2)Pop (Eliminar datos de pila) ");
        System.out.println(" 3)Presentar pila ");
        System.out.println(" 4)Limpiar pila ");
        System.out.println(" 5)Salir /n");
        System.out.println(" Seleccione un opcion ");
Opcion =entrada.nextInt();

//Alimentando la opcion elejida mendiante un swich
switch (Opcion)
        {
        case 1 :  Cima=push(pila,Cima);
        break;

case 2 :  Cima=Pop (pila,Cima);
        break;

case 3 :  Presentar(pila,Cima);
        break;

case 4 :  Cima=0;
 System.out.println("La pila se ha vaciado");
        break;

case 5 :  break;
default : System.out.println(" Opcion Incorrecta Teclea una del Menu ");
break;
        }
        }while (Opcion !=5);
    }

//Declarar procedimiento mediante metedos para las opciones del DO
public static int push (int []p, int c) //p nombre que otorgara valores a push
{
Scanner ent = new Scanner(System.in);

if (c<p.length)//Verifica que exista espacio para ingresar elemento
{
c++;
System.out.println("Ingrese elemento"+c+":");
p[c-1]= ent.nextInt();
}
else
{
System.out.println("PILA LLENA Elimine un Elemento");
}
return c;
}
public static int Pop(int []p, int c)
{

if (c!=0)
{
System.out.println("Se elimino el elemento"+c+"= "+p[c-1]);
c--;
}
else
{
System.out.println("LA PILA ESTA VACIA");
}
return c;
}
public static void Presentar(int []p, int c)
{
if (c!=0)
{
System.out.println("-----Mostrando los datos conenidos en la pila-----");
for (int i=c-1;i>=0;i--)
    {
    System.out.println("Elemento "+i+" : "+p[i]);
    }
}
else
{
System.out.println("PILA VACIA");
}
}
}

Ordenar Números Mediante Arreglos Método de la Burbuja

//Solicitar cantidad de elementos (unidimensional)
//Crear metodo de lectura
//Crear metodo de presentar datos
//Crear metodo ordenar datos(metodo de la burbuja)

import java.util.Scanner;

public class ArregloOrdenado
{
   
    public ArregloOrdenado()
    {
    }
 
    public static void main(String[] args)
    {
        int n;
   
    //se declara el arreglo
    int []x;
    Scanner entrada = new Scanner(System.in);
   
    //Se introduce el valor de n que sera el espacio del arreglo
    System.out.println("Cual sera el tamaño del arreglo: ");
    n=entrada.nextInt();
    x=new int[n];
         
        leerdatos(x);
        presentardatos(x);
        ordenardatos(x);
     
    }
    public static void leerdatos(int [] a)
    {
    Scanner entrada=new Scanner(System.in);
    for (int i=0;i<a.length;i++)
    {
    System.out.print("Ingresa el elemento a["+i+"]");
    a[i]=entrada.nextInt();
    }
    }
    public static void presentardatos (int [] a)
    {
    for (int i=0;i<a.length;i++)
    {
    System.out.println("los datos ingresados en a["+i+"]"+a[i]);
   
    }
    }
    public static void ordenardatos (int [] a)
    {
    int aux;
        for(int i=0;i<a.length-1;i++)
            for(int j=0;j<a.length-i-1;j++)
                   //condición que ordena los datos
                   if(a[j+1]<a[j])
                   {
                      aux=a[j+1];
                      a[j+1]=a[j];
                      a[j]=aux;
                   }
         // Mostrar el arreglo ordenado
        for(int k=0; k<a.length; k++)
        System.out.print(a[k]+" ");
    }
}