ClubEnsayos.com - Ensayos de Calidad, Tareas y Monografias
Buscar

El alumno aplica los conocimientos adquiridos en clase sobre listas enlazadas


Enviado por   •  13 de Mayo de 2017  •  Resúmenes  •  2.590 Palabras (11 Páginas)  •  571 Visitas

Página 1 de 11

ESTRUCTURAS DE DATOS I

TAREA #5

Objetivos

El alumno aplica los conocimientos adquiridos en clase sobre listas enlazadas

descripción de actividad

  1. Escribir un método, en la clase         Lista, que devuelva cierto si la lista está vacía.

R/= R/=   Clase Lista(){

Public:
Int cabeza;

Int cola;

Puntero *p;

Public void RetornarLista(){

Puntero=cabeza;

If(Cabeza==null){

System.out.print(“La lista esta vacia”);

                                      }

                       }

}

  1. En una lista enlazada de números enteros, se desea añadir un nodo entre dos nodos consecutivos cuyos datos tienen distinto signo; el dato del nuevo nodo debe ser la diferencia, en valor absoluto, de los dos nodos.

R/= Nodo nuevo, anterior,diferencia;

nuevo =  new Nodo(entrada);

anterior = new Nodo(entrada);

nuevo.enlace = primero;

primero = nuevo;

nuevo.enlace = anterior.enlace;

anterior.enlace = anterior

diferencia = nuevo - anterior

return diferencia;

  1. Escribir un programa que realice las siguientes tareas:
  • Crear una lista enlazada de números enteros positivos al azar, donde la inserción se realiza por el último nodo.
  • Recorrer la lista para mostrar los elementos por pantalla.
  • Eliminar todos los nodos que superen un valor dado.

R//=   CLASE PRINCIPAL

public class Principal {

    public static int leerEntero(String texto){//

  Scanner ingreso =new Scanner(System.in);

  System.out.println(texto);

  int dato=ingreso.nextInt();

  return dato;

 }

    public static int menu(){//creacion del menu de opciones

 

  System.out.println("---Menu---");

  System.out.println("1. Agregar Final");

                System.out.println("2. Recorrer lista");

                System.out.println("3. Borar un elemento");

  System.out.println("4. Salir");

  int dato=leerEntero("Seleccione una opcion: ");

  return dato;

 }

    public static void main(String[] args) {

        int opcion;

    Lista coleccion=new Lista();

    do{

   opcion=menu();

   switch (opcion) {

   case 1:

    coleccion.agregarNodoAlFinal(leerEntero("Ingrese un valor: "));//Insertar nodos al final

    break;

   case 2:

                                System.out.println("Lista");//impresion de la lista

    coleccion.recorreLista();

    break;

   case 3:

    coleccion.eliminarNodos(leerEntero("Ingrese un valor: "));//Eliminar los nodos con un dato dado

    break;

   default:

    System.out.println("Fin del programa!");;

   }

    }while(opcion!=4);

    }

}

CLASE NODO

public class Nodo {

    private float dato;

    private Nodo siguiente;

 

    public Nodo(float dato){

        this.dato=dato;

        this.siguiente=null;

    }

    public Nodo(float dato, Nodo siguiente){

        this.dato=dato;

        this.siguiente=siguiente;

 

    }

    public float getDato() {

        return dato;

    }

    public void setDato(float dato) {

        this.dato = dato;

    }

    public Nodo getSiguiente() {

        return siguiente;

    }

    public void setSiguiente(Nodo siguiente) {

        this.siguiente = siguiente;

    }

}

CLASE LISTA

public class Lista {

    Nodo inicio;

    Nodo fin;

 

    public Lista() {

        inicio=null;

        fin=null;

    }

     public void agregarNodoAlInicio(int dato){//permite agregar nodos al final de la lista

         Nodo nuevo=new Nodo(dato);

         nuevo.setSiguiente(inicio);

         inicio=nuevo;

         if(fin==null)

             fin=nuevo;

    }

 

    public void agregarNodoAlFinal(int dato){//Permite agregar nodos al final de una lista

        Nodo nuevo=new Nodo(dato);

        if(fin!=null){

            fin.setSiguiente(nuevo);

            fin=nuevo;

       }

       else{

            fin=nuevo;

            inicio=nuevo;

       }

    }

    public void recorreLista(){//Esta metodo permite la impresion de la lista

        Nodo aux=inicio;

        while(aux!=null){

            System.out.println(aux.getDato());

            aux=aux.getSiguiente();

        }

 

    }

   public void eliminarNodos(int numero)//permite eliminar los nodos que superen un valor dado

...

Descargar como (para miembros actualizados)  txt (8.2 Kb)   pdf (89.5 Kb)   docx (400.2 Kb)  
Leer 10 páginas más »
Disponible sólo en Clubensayos.com