- class nodo {
- int num = 0;
- nodo sig;
- void LLenar(nodo nodo_nuevo,int n)
- {
- nodo_nuevo.num = n;
- nodo_nuevo.sig = null;
- }
- }
- class Lista {
- nodo L;
- void ingresar(int n){
- nodo nodo_nuevo = new nodo();
- if(L == null){
- nodo_nuevo.LLenar(nodo_nuevo,n);
- L = nodo_nuevo;
- }else{
- nodo_nuevo.LLenar(nodo_nuevo, n);
- nodo_nuevo.sig = L;
- L = nodo_nuevo;
- }
- }
- void ingresar_final(nodo Aux, int n){
- if(Aux == null){
- nodo nodo_nuevo = new nodo();
- nodo_nuevo.LLenar(nodo_nuevo,n);
- L = nodo_nuevo;
- }else
- if(Aux.sig == null){
- nodo nodo_nuevo = new nodo();
- nodo_nuevo.LLenar(nodo_nuevo,n);
- Aux.sig= nodo_nuevo;
- }else{
- ingresar_final(Aux.sig,n);
- }
- }
- void Eliminar_primero(){
- nodo Aux;
- Aux = L;
- if(Aux == null){
- System.out.println("Lista Vacia");
- }else{
- L = L.sig;
- }
- }
- void Eliminar_ultimo(nodo Aux){
- if(Aux == null){
- System.out.println("Lista Vacia");
- if(Aux == L){
- L = null;
- }
- }else{
- if(Aux.sig.sig == null){
- Aux.sig = null;
- }else{
- Eliminar_ultimo(Aux.sig);
- }
- }
- }
- void Eliminar_Numero(nodo Aux,nodo Aux2,int n){
- if(L == null){
- System.out.println("No se Encontro Elemento");
- }else{
- if(Aux.sig == null){
- if(Aux.num == n){
- L = null;
- }else{
- System.out.println("No Encontrado");
- }
- }else{
- if(L.num == n){
- L = Aux.sig;
- Aux = null;
- }else{
- if(Aux.sig.num == n){
- Aux2 = Aux.sig;
- Aux.sig = Aux2.sig;
- Aux2 = null;
- }else{
- Eliminar_Numero(Aux.sig, Aux2, n);
- }
- }
- }
- }
- }
- void mostrar(nodo L){
- if(L != null){
- System.out.println("Numero: "+L.num);
- mostrar(L.sig);
- }else{
- System.out.println("Fin Lista");
- }
- }
- }
- import java.io.*;
- public class Main {
- public static void main(String[] args) throws IOException {
- BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
- Lista obj = new Lista();
- Boolean Salir;
- int opc = 0; int numero = 0;
- do{
- Salir = false;
- System.out.println("\t\tPROCESADOR DE LISTAS\n");
- System.out.println("1. Ingresar Inicio");
- System.out.println("2. Ingresar Final");
- System.out.println("3. Eliminar Primero");
- System.out.println("4. Eliminar Ultimo");
- System.out.println("5. Eliminar Numero");
- System.out.println("6. Mostrar");
- System.out.println("7. Salir");
- System.out.print("Opcion: ");
- try{
- opc = Integer.parseInt(in.readLine());
- }catch(NumberFormatException e){
- System.out.println("Debes Ingresar Solo Numeros");
- }
- switch(opc){
- case 1:
- System.out.println("\n\nBienvenido al Metodo Ingresar Inicio");
- System.out.print("Numero: ");
- try{
- numero = Integer.parseInt(in.readLine());
- }catch(NumberFormatException e){
- System.out.println("Debes Ingresar Solo Numeros");
- }
- obj.ingresar(numero);
- break;
- case 2:
- System.out.println("\n\nBienvenido al Metodo Ingresar Final");
- System.out.print("Numero: ");
- try{
- numero = Integer.parseInt(in.readLine());
- }catch(NumberFormatException e){
- System.out.println("Debes Ingresar Solo Numeros");
- }
- obj.ingresar_final(obj.L,numero);
- break;
- case 3:
- obj.Eliminar_primero();
- break;
- case 4:
- obj.Eliminar_ultimo(obj.L);
- break;
- case 5:
- System.out.println("\n\nBienvenido al Metodo Eliminar Numero");
- System.out.print("Numero: ");
- try{
- numero = Integer.parseInt(in.readLine());
- }catch(NumberFormatException e){
- System.out.println("Debes Ingresar Solo Numeros");
- }
- obj.Eliminar_Numero(obj.L,obj.L,numero);
- break;
- case 6:
- System.out.println("\n******************");
- obj.mostrar(obj.L);
- System.out.println("******************");
- break;
- case 7:
- System.out.println("Saliendo del Programa");
- Salir = true;
- break;
- default:
- System.out.println("\nOpcion Incorrecta");
- break;
- };
- }while(Salir != true);
- }
- }