lunes, 20 de octubre de 2014

Lista Circular en java

/*
Metodos Basicos
 */

package listacircular;

import java.util.Scanner;
import javax.swing.JOptionPane;

class Nodo
{
    public int info;
    public Nodo enlace;
    public Nodo(){}
}
class Lista
{
Nodo cab=null;//declaración del nodo

void InsertarNodo(int n)  //inserción por delante
{  if(cab==null)  //entra la primera vez
   {
        cab = new Nodo();  //crea el nodo cab
        cab.info=n;
        cab.enlace=cab;  //su primer enlace apunta a cabezera
   }
   else
   {    Nodo aux=cab;
        Nodo temp=new Nodo(); //nodo temporal
            temp.info=n;
         while(aux.enlace!=cab)
         {
            aux=aux.enlace;
         }
         aux.enlace=temp;
         temp.enlace=cab;
   }
}
void mostrarLista()
 {
  Nodo temp=cab;
    do
    {
        System.out.println("\t"+temp.info);
        temp=temp.enlace;
    }while(temp != cab); //recorre hasta llegar a cabezera
 }
void Eliminar(int i)
{
    Nodo aux=cab;
    Nodo temp= null;
    Nodo aux2 = null;
   
    while(aux.info != i && aux.enlace !=cab)
    {
        aux =aux.enlace;
        if(temp==null)
            temp=cab;
        else
            temp=temp.enlace;
    }
    if(temp==null)
    {
        if(cab.enlace != cab)
        {  
            aux2=cab;
            while(aux2.enlace!=cab)
                aux2=aux2.enlace;
           
            cab=cab.enlace;
            aux2.enlace=cab;
        }
         
        else
            cab=null;
    }
    if(temp!=null)
    {
      if(aux.info != i )
          System.out.println("no encontrado");
      else
      {
          temp.enlace=aux.enlace;
          System.out.println("encontrado");
         
      }
     }
 
   /* else
        temp.enlace = aux.enlace;
    if(aux.info != i)
        System.out.print("Valor no Encontrado...\n");
    else
        System.out.println("Valor Eliminado: "+aux.info+"\n");*/
}
void contar()
{
    int contar=0;
    Nodo temp=cab;
    do
    {
        contar++;
        temp=temp.enlace;
    }while(temp!=cab);
    System.out.println("la cantidad de Nodos es: "+contar);
}
void promedio()
{
    int contar=0,pro=0;
    Nodo temp=cab;
    do
    {
        contar++;
        temp=temp.enlace;
        pro+=temp.info;
       
    }while(temp!=cab);
    System.out.println("el promedio de los nodos es: "+(pro/contar));
}
void insertarordenado(int n)
{
    if(cab==null)  //entra la primera vez
          {
    cab = new Nodo();  //crea el nodo cab
    cab.info=n;
    cab.enlace=null;  //su primer enlace apunta a null
    }
        else {
        Nodo temp=new Nodo(); //nodo temporal
        temp.info=n;
        //temp.enlace=cab;
        //ab=temp;
            if(n>cab.info)
            {
                temp.enlace=cab;
                cab=temp;
            }
            else
            {
                Nodo aux=cab;
                while(aux.enlace!=null && n<aux.enlace.info)
                {
                  aux=aux.enlace;
                }
                temp.enlace=aux.enlace;
                aux.enlace=temp;

            }
        }
}

}
class Persona {

    public String nombre;
    public int edad;
    public double salario;
    public float peso;
    public Persona(String n1,int edad1,double sueldo, float masa)//constructor parametrizado
    {
        nombre = n1;
        edad =  edad1;
        salario = sueldo;
        peso = masa;
    }
    public Persona(){nombre = "pablo"; edad = 18;salario = 633000; peso = 75;}
public void put_datos()
{
    nombre = JOptionPane.showInputDialog("Ingrese Nombre: ");
    String aux = JOptionPane.showInputDialog("Ingrese edad: ");
    edad = Integer.parseInt(aux);
    String sal = JOptionPane.showInputDialog("Ingrese Salario: ");
    salario = Integer.parseInt(sal);
    String aux1 = JOptionPane.showInputDialog("Ingrese peso: ");
    peso = Integer.parseInt(aux1);
   
}
public void get_datos()
{
   JOptionPane.showMessageDialog(null,"nombre: "+nombre+"\n"+"edad: "+edad+"\n"+"salario: "+salario+"\n"+"peso: "+peso+" Kg");
}
}
public class ListaCircular
{

    public static void main(String[] args)
    {
      Lista A=new Lista();
      Persona p = new Persona();
     
      p.put_datos();
      p.get_datos();
     /* int num=0,opc=0;
      do
      {
      System.out.print("\nIngrese Nodo Nuevo: ");
      Scanner s2 = new Scanner(System.in);
      num=s2.nextInt();
      A.InsertarNodo(num);
      System.out.print("\nPresiona 1(uno) si Desea Ingresar un Nuevo Nodo. \nPresiona 0(cero) para Salir.\nSu Eleccion es: ");
      Scanner s1 = new Scanner(System.in);
      opc= s1.nextInt();
   
      }while(opc!=0);
      */
      A.InsertarNodo(4);
      A.InsertarNodo(7);
      A.InsertarNodo(3);
      //A.InsertarNodo(4);
      A.mostrarLista();
      System.out.print("---------------\n");
     // A.Eliminar(4);
      A.mostrarLista();
      A.contar();
    }
   
}

No hay comentarios:

Publicar un comentario