Java - lista de pasajeros casi terminada

 
Vista:

lista de pasajeros casi terminada

Publicado por luischidalee (3 intervenciones) el 20/08/2018 19:52:54
Crear una aplicación que controle una lista de pasajeros de autobuses. El programa principal debe contener un menú con las siguientes opciones:
Agregar pasajero (al final de la lista).
Eliminar pasajero (especificado por el usuario).
Visualizar los datos de un pasajero determinado.
Nota: utilizar una lista doblemente enlazada.

Nodo:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
public class Nodo
{
    private Nodo siguiente;
    private Nodo anterior;
    private String dato;
 
    public Nodo(String dat, Nodo ant, Nodo sig)
    {
        siguiente = sig;
        anterior = ant;
        dato = dat;
    }
 
    Nodo(String dato) {
        throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates.
    }
 
    public Nodo getSiguiente()
    {
        return siguiente;
    }
    public void setSiguiente(Nodo siguiente)
    {
        this.siguiente = siguiente;
    }
 
    public Nodo getAnterior()
    {
        return anterior;
    }
    public void setAnterior(Nodo anterior)
    {
        this.anterior = anterior;
    }
 
    public String getDato()
    {
        return dato;
    }
    public void setDato(String dato)
    {
        this.dato = dato;
    }
 
}

Lista_Doble:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
public class Lista_Doble
{
    private Nodo inicio;
    private Nodo fin;
 
    public Lista_Doble()
    {
        inicio = null;
        fin = null;
    }
 
 
//Incertar al final
    public void insertarFin(String dato)
    {
        if(inicio == null)
        {
            fin = new Nodo(dato, null, null);
            inicio = fin;
        }
        else
        {
            Nodo nuevo = new Nodo(dato, fin, null);
            fin.setSiguiente(nuevo);
            fin = nuevo;
        }
    }
 //Eliminar
    public void eliminaDato(String dato)
    {
     if (inicio != null)
        {
            Nodo sig = inicio;
            Nodo ant = null;
            while (ant != null)
            {
                if (sig.getDato().equals(dato) )
                {
                    if (ant.equals(null))
                    {
                        inicio = inicio.getSiguiente();
                        sig.setSiguiente(null);
                        ant= inicio;
 
                    }else
                    {
                        ant.setSiguiente(ant.getSiguiente());
                        sig.setSiguiente(null);
                        sig = ant.getSiguiente();
                    }
                }else
                {
                    ant = sig;
                    sig = sig.getSiguiente();
                }
            }
        }
 
    }
 
// Buscar
    public Boolean buscar (String dato)
    {
        Nodo temp = inicio;
        while(temp != null)
        {
           if(temp.getDato().equals(dato))
           {
               return true;
           }
           temp = temp.getSiguiente();
        }
        return false;
    }
 
  public void Mostrar()
    {
        Nodo temp = inicio;
        while(temp != null)
        {
          System.out.println(temp.getDato());
          temp = temp.getSiguiente();
        }
    }
 
main class autobus
import java.io.*;
 
public class Autobus_1 {
 
    public static BufferedReader entrada = new BufferedReader(new InputStreamReader(System.in));
    public static void main(String[] args) throws IOException
    {
        Lista_Doble ld = new Lista_Doble();
 
      int opcion;
      String dato;
      boolean si = true;
 
      ld.insertarFin("Luis");
      ld.insertarFin("Tania");
      ld.insertarFin("Paco");
 
 
 
      while(si)
      {
          System.out.println("\nIndica la opcion deseada: ");
          System.out.println("\nAgregar pasajero 1");
          System.out.println("\nEliminar pasajero 2");
          System.out.println("\nVisualizar los datos de un pasajero determinado 3");
 
          opcion = Integer.parseInt(entrada.readLine());
 
 
      switch(opcion)
            {
                case 1:  System.out.println("\nNombre del pasajero agregar");
                    dato = (entrada.readLine());
                    ld.insertarFin(dato);
                    System.out.println("\nTodos Los pasajeros:");
                    ld.Mostrar();
                break;
 
                case 2: System.out.println("\n¿Que Pasajero quiere eleminar?");
                    dato = (entrada.readLine());
                    ld.eliminaDato(dato);
                    System.out.println("\nTodos Los pasajeros:");
                    ld.Mostrar();
                break;
 
                case 3: System.out.println("\nNombre del pasajero");
                    dato = (entrada.readLine());
                    System.out.print(ld.buscar(dato));
                break;
 
                default: System.out.println(">>>>>>> Opcion invalida. Intente de nuevo.");
                        si = false;
                    break;
            }
       }
    }
 
}

Pregunta: porque no puedo eliminar algo de la lista
como busco los nombre por el numero de posicion
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder