Páginas

sábado, 16 de diciembre de 2017

Crear una lista enlazada donde se pueda ingresar , mostrar, ingresar al final, borrar , mayor de la lista y menor


package proyectolistasenlazadas;

import java.util.Scanner;

public class ProyectoListasEnlazadas {

    public static Scanner sc = new Scanner(System.in);
    public static ListaEnLazada miLista = new ListaEnLazada();

    public static void main(String[] args) {

        int op = 0;

        do {
            System.out.println("menu de opciones");
            System.out.println("[1] Ingresar elementos a las lista");
            System.out.println("[2] Mostrar lista");
            System.out.println("[3] Ingrese Elemento Al final");
            System.out.println("[4] Borrar numero del inicio");
            System.out.println("[5] Mayor numero");
            System.out.println("[6] Menor numero");
            System.out.println("[7] Promedio");
            System.out.println("[8] Ordenar Acendente ");
            System.out.println("[9] Eliminar por posicion");
            System.out.println("[10] Salir");
            System.out.println("Ingrese opcion[1-10]");
            op = sc.nextInt();
            switch (op) {

                case 1:

                    double x = 0;
                    System.out.println("numero de elementos de la lista");
                    int n = sc.nextInt();
                    for (int j = 0; j < n; j++) {
                        System.out.println("Ingrese numero::" + j);
                        x = sc.nextDouble();
                        miLista.insertarAlinicio(x);
                    }
                    break;
                case 2:
                    System.out.println("Los numeros ingresados son::");
                    miLista.mostrar();
                    break;
                case 3:
                    double e;
                    System.out.println("numero de elementos de la lista");
                    int r = sc.nextInt();
                    for (int i = 0; i < r; i++) {
                        System.out.println("Ingrese numer::" + i);
                        e = sc.nextDouble();
                        miLista.insertarAlFinal(e);
                  }
                    break;
                case 4:
                    System.out.println("Borrando numero del inicio");
                    miLista.borrarPrimero();
                    break;
                case 5:
               
                    miLista.mayor();
                    break;
                case 6:
                    miLista.menor();break;
                 
                case 7:
                    System.out.println("Promedio ");
                    miLista.promedio();
                    break;
                case 8:
                    System.out.println("ORDENAMIENTO ACENDENTE");
                    miLista.ordenarAcendente();
                    miLista.mostrar();
                    break;
                case 9:
                    System.out.println("Ingrese Numero a eliminar ");
                    double numero=sc.nextDouble();
                 
                    if(miLista.buscarPosicion(numero)!=-1){  
                        int p=miLista.buscarPosicion(numero);
                        miLista.borrar(p);
                        System.out.println("numero eliminado");
                    }else{
                        System.out.println("Nuemro no encontrado ");
                    }
                break;
                 
                default:
                    System.out.println("Saliendo del programa ");
            }
        } while (op != 10);
    }
}





SUB CLASE

package proyectolistasenlazadas;


public class ListaEnLazada {

    protected Nodo primero;
    private int tamaño = 0;

    public int getTamaño() {
        return tamaño;
    }

    public void setTamaño(int tamaño) {
        this.tamaño = tamaño;
    }

    public ListaEnLazada() {
        primero = null;
    }

    public Nodo getPrimero() {
        return primero;
    }

    public void setPrimero(Nodo primero) {
        this.primero = primero;
    }

    public boolean esVacio() {
        return primero == null;
    }

    public void insertarAlinicio(double x) {
        Nodo nuevo = new Nodo(x);
        nuevo.setInfo(x);
        if (esVacio()) {

            primero = nuevo;
        } else {
            nuevo.setSiguiente(primero);
            primero = nuevo;
        }
        tamaño++;

    }

    public void insertarAlFinal(double x) {
        Nodo nuevo = new Nodo(x);
        nuevo.setInfo(x);
        if (esVacio()) {
            primero = nuevo;
        } else {
            Nodo aux = primero;
            while (aux.getSiguiente() != null) {
                aux = aux.getSiguiente();
            }
         aux.setSiguiente(nuevo);
        }
        tamaño++;
    }

    public void mostrar() {
        Nodo p = primero;
        while (p != null) {
            System.out.println("[" + p.getInfo() + "]");
            p = p.getSiguiente();
        }
    }

    public void borrarPrimero() {

        primero = primero.getSiguiente();

    }

    public void mayor() {
        Nodo a = primero;
        double mayor = primero.getInfo();
        while (a != null) {

            if (a.getInfo() > mayor) {
                mayor = a.getInfo();

            }
            a = a.getSiguiente();

        }
        System.out.println("El mayor es " + mayor);
    }

    public void menor() {
        Nodo a = primero;
        double menor = primero.getInfo();
        while (a != null) {

            if (a.getInfo() < menor) {
                menor = a.getInfo();

            }
            a = a.getSiguiente();

        }
        System.out.println("El menor es " + menor);
    }

    public void promedio() {
        Nodo a = primero;
        double suma = 0;
        int con = 0;
        while (a != null) {
            suma += a.getInfo();
            con++;
            a = a.getSiguiente();
        }
        double promedio = suma / con;
        System.out.println("el promedio es" + promedio);
    }

    public int buscarPosicion(double x) {
        Nodo a = primero;
        int posi = -1;
        int con = 0;
        while (a != null) {
            con++;
            if (a.getInfo() == x) {
                posi = con;
            }
            a = a.getSiguiente();
        }
        return posi;
    }

    public void borrar(int pos) {
        if (pos >= 0 && pos < getTamaño()) {
            if (pos == 0) {
                primero = primero.getSiguiente();
            } else {
                Nodo aux = primero.getSiguiente();
                for (int i = 0; i < getTamaño(); i++) {
                    aux = aux.getSiguiente();
                }
                Nodo siguiente = aux.getSiguiente();
                aux.setSiguiente(siguiente.getSiguiente());
            }
            tamaño--;

        }

    }

     public void ordenarAcendente() {
       Nodo a=primero;
       double aux;
       while(a!=null){
           Nodo siguiente=a.getSiguiente();
           if(a.getInfo()>siguiente.getInfo()){
               aux= a.getInfo();
               a.setInfo(siguiente.getInfo());
               siguiente.setInfo(a.getInfo());
           }
           a=a.getSiguiente();
       }
     }
}




NODO

package proyectolistasenlazadas;

/**
 * Fecha: 15/05/2017
 * Autor: Antonio Aburto Cortez
 */
public class Nodo {
 
private double info;
private Nodo siguiente;

public Nodo(){
    siguiente=null;
}
 
public Nodo (double x){
   siguiente=null;
   info=x;
}
 
 public Nodo(double x,Nodo siguiente){
     info=x;
     this.siguiente=siguiente;
 }

    public double getInfo() {
        return info;
    }

    public void setInfo(double info) {
        this.info = info;
    }

    public Nodo getSiguiente() {
        return siguiente;
    }

    public void setSiguiente(Nodo siguiente) {
        this.siguiente = siguiente;
    }
 public void VerNodo(){
     System.out.println("["+info+"]");
 }


}

No hay comentarios.:

Publicar un comentario