tengo que hacer un trabajo con listas enlazadas e ingresar modificar, contar, eliminar y buscar datos
necesito ayuda pork solo puedo ingresar un solo dato al principio al final al medio etc pero solo uno :/
plissssssss
me falta contar los datos y poder insertar apellido y rut
necesito ayuda pork solo puedo ingresar un solo dato al principio al final al medio etc pero solo uno :/
plissssssss
Código [Seleccionar]
package lista;
import java.util.*;
/**
*
* @author Rodrigo
*/
public class Lista {
Scanner leer=new Scanner(System.in);
Nodo primero;
Nodo segundo;
public Lista(){
primero=null;
segundo=null;
}
public void crearlista(){
if(primero==null){
System.out.print("NOMBRE: ");
String lo=leer.next();
primero= new Nodo(lo, primero);
}
if(segundo==null){
System.out.print("APELLIDO: ");
String la=leer.next();
segundo = new Nodo(la, segundo);
}
}
public void recorrerlista(){
Nodo n;
Nodo n1;
n=primero;
n1=segundo;
if(n ==null){
System.out.println("No tiene nombres");}
else{
while(n!=null){
System.out.println(n.dato);
n=n.referencia;}}
}
public void insertarPrimero(){
Nodo n=primero;
if(n==null){
System.out.println("No tiene nombres");}
else{
System.out.print("Dame el nombre :");
String y=leer.next();
Nodo nuevo=new Nodo(y);
nuevo.referencia=n;
primero=nuevo;}
}
public void insertarUltimo(){
Nodo ultimo=null, n=primero;
if(n==null){
System.out.println("No tiene nombres");}
else{
while(n!=null){
ultimo=n;
n=n.referencia;}
System.out.print("Dame el nuevo nombre :");
String y=leer.next();
ultimo.referencia=new Nodo(y);}
}
public void eliminarElemento(){
Nodo n=primero, anterior=null;
boolean encontrado=false;
if(n==null){
System.out.println("No tiene nombres");}
else{
System.out.print("Eliminar :");
Scanner leer=new Scanner(System.in);
String nnom=leer.next();
while((n!=null)&&(encontrado==false)){
encontrado=(nnom.equals(n.dato));
if(encontrado==false){
anterior=n;
n=n.referencia;}}
if(n!=null){
if(n==primero){
primero=n.referencia;}
else{
anterior.referencia=n.referencia;}}}
}
public void insertarElemento(){
Nodo ref=null, n=primero;
boolean encontrado=false;
Scanner leer=new Scanner(System.in);
if(n==null){
System.out.println("No tiene nombres");}
else{
System.out.print("Insertar un elemento despues del :");
String x=leer.next();
while(n!=null){
if(x.equals(n.dato)){
ref=n;
encontrado=true;}
n=n.referencia;}
if(encontrado==true){
System.out.print("Nuevo nombre :");
String y=leer.next();
Nodo nuevo=new Nodo(y);
nuevo.referencia=ref.referencia;
ref.referencia=nuevo;}
else{
System.out.println("Elemento no Encontrado");}}
}
public void buscarElemento(){
Nodo n=primero;
Nodo n1=segundo;
boolean encontrado=false;
if(n==null){
System.out.println("No tiene nombres");}
else{
System.out.print("Escribe el nombre :");
String tw="";
tw=leer.next();
while(n!=null){
if(tw.equals(n.dato)){
System.out.println("Nombre '"+tw+"' fue encontrado en la posicion :"+n);
encontrado=true;}
n=n.referencia;}
if(encontrado==false){
System.out.println("El nombre :"+tw+" no existe");}}
}
public static void main(String[] args) {
// TODO code application logic here
Scanner leer=new Scanner(System.in);
Lista Lista= new Lista();
int opcion=0;
while(opcion!=8){
System.out.println("1.- Crear una lista enlazada");
System.out.println("2.- Insertar nombres al inicio de la lista enlazada");
System.out.println("3.- Insertar nombres al final de la lista");
System.out.println("4.- Insertar nombres entre nodos de la lista");
System.out.println("5.- Buscar un nombre en la lista");
System.out.println("6.- Eliminar nombres de la lista.");
System.out.println("7.- Recorrer la lista de nombres");
System.out.println("8.- Salir");
System.out.print("Teclea una Opcion :");
opcion=leer.nextInt();
switch(opcion){
case(1): Lista.crearlista();
break;
case(2): Lista.insertarPrimero();
break;
case(3): Lista.insertarUltimo();
break;
case(4): Lista.insertarElemento();
break;
case(5): Lista.buscarElemento();
break;
case(6): Lista.eliminarElemento();
break;
case(7): Lista.recorrerlista();
break;
}
}
}
}
me falta contar los datos y poder insertar apellido y rut