El alumno aplica los conocimientos adquiridos en clase sobre listas enlazadas
Enviado por Cristell Rivera • 13 de Mayo de 2017 • Resumen • 2.590 Palabras (11 Páginas) • 601 Visitas
ESTRUCTURAS DE DATOS I
TAREA #5
Objetivos
El alumno aplica los conocimientos adquiridos en clase sobre listas enlazadas
descripción de actividad
- 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”);
}
}
}
- 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;
- 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
...