Java - Consulta ejercicio Java

 
Vista:

Consulta ejercicio Java

Publicado por Saray (2 intervenciones) el 25/05/2017 09:56:16
Hola!

Mi profe de programación es un poco nulo en la materia y nos ha colgado un código sin explicar casi nada. Estamos toda la clase igual, muchos hemos empezado el lenguaje Java hace nada y en este código hay conceptos que se nos escapan. Agradecería un poco de explicación si es posible... En mi caso no entiendo de donde saca el "sig".

El ejercicio es una pila con baja repetidas.

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
145
146
147
148
149
150
151
152
import java.util.Scanner;
 
public class BajasRepetidas {
 
	public NodoPas seg=null;
 
	public static int menu(){
		Scanner tc = new Scanner(System.in);
		int mn=0;
		try{
			System.out.println("\nMENU \n");
			System.out.println("1.- Entrada  :");
			System.out.println("2.- Listado  :");
			System.out.println("3.- Buscar   :");
			System.out.println("4.- Salir    :");
			System.out.print("\nDa Op :");
			mn=tc.nextInt();
		}catch (Exception e){
			menu();
			}
		return mn;
 
	}
	public void Insertar() {
 
		Scanner tc = new Scanner(System.in);
    	NodoPas pri = new NodoPas();
 
        System.out.print("\n Da Nom :");pri.nom=tc.nextLine();
        System.out.print("\n Da edad :");pri.edad=tc.nextInt();
        pri.sig = seg;//seg puntero
        seg = pri;
 
	}
 
	public void Listado() {
		NodoPas pri=null;
        pri=seg;
        if(pri==null){
			System.out.println("Pila Vacia ::::.\n\n");
		}
		else {
			System.out.println("Listado de todos los elementos de la pila.\n\n");
			while (pri!=null) {
				System.out.println(pri.nom+"-"+pri.edad);
				pri=pri.sig;
			}
			System.out.println();
		}
    }
    public void Buscar() {
		Scanner sc = new Scanner(System.in);
 
		NodoPas pri=null, ant=null;
		String info="",op="",s="s";
		boolean ok=true;
        pri=seg;
 
        if(pri==null){
			System.out.println("Pila Vacia ::::.\n\n");
		}
		else {
			ant=seg;
			System.out.print("\nDar Nom :");info=sc.nextLine();
			while ((pri!=null)&& ok) {
				if(pri.nom.compareTo(info)==0){
					System.out.print("\nInfo Dada :"+pri.nom+"-"+pri.edad);
					System.out.print("\nDar de baja s/n? :");op=sc.nextLine();
					if(s.compareTo(op)==0){
						eliminar(info);
					}
					else{
						menu();
					}
				}
				else{
					pri=pri.sig;//pri sera igual a pri sig para ir recorriendo los nodos
				}
 
			}
			if (ok) System.out.println("Info no Valida :");
		}
    }
 
    public void eliminar(String info){
 
		Scanner sc = new Scanner(System.in);
 
		NodoPas pri=null, ant=null;
		String infor="",op="",s="s";
		//boolean ok=true;
        pri=seg;
 
		while (pri!=null) {
 
			if(pri.nom.compareTo(infor)==0){
 
				if(pri==seg){
 
					seg=pri.sig;
				}
				else{
					System.out.print("\nBaja realizada");
					ant.sig=pri.sig;
					pri=pri.sig;
					}
 
			}
			else{
 
				pri=pri.sig;//pri sera igual a pri sig para ir recorriendo los nodos
			}
 
		}
 
 
 
		//System.out.print("h"+info);
 
		/*if(s.compareTo(op)==0){
			if(pri==seg){
				seg=pri.sig;
			}
			else{
				System.out.print("\nBaja realizada");
				ant.sig=pri.sig;
			}

		}
		ok=false;//cuando hace la baja, ok es false y sale del while
		ant=pri;// anterior es igual a pri*/
 
	}
 
    public static void main (String[] args) {
		BajasRepetidas pila = new BajasRepetidas();
		int op;
 
		do{
			op=menu();
			switch(op){
				case 1:pila.Insertar();break;
				case 2:pila.Listado();break;
				case 3:pila.Buscar();break;
				//case 4:;break;
 
			}
 
		}while(op!=4);
 
	}
}
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

Consulta ejercicio Java

Publicado por Tom (1831 intervenciones) el 25/05/2017 12:52:55
¿ Qué es NodoPas ?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Consulta ejercicio Java

Publicado por Rafael (1 intervención) el 25/05/2017 22:50:39
Lo que veo en el código es un fundamento de la programacion, es decir las listas, que se puede comportar como pila, ya que el ultimo en entrar es el primero en salir, y se denota LIFO, y FIFO si es una cola, primero en entrar-primero en salir. Donde cada nodo puede estar compuesto por varias variables, un nodo puede tener ejemplo String nombre, int edad, double talla, etc., NodoPas, puede ser el nodo pasado o anterior como NodSig puede ser nodo siguiente.

Mirando por arriba, me parece que el codigo no esta completo, sig al parecer es un objeto de la clase NodoPas, pero NodoPas no ha sido declarada en ninguna parte. Mira este pequeno ejemplo>

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
public class Pila {
 
    class Nodo {
        int info;
        Nodo sig;
    }
 
    private Nodo raiz;
 
    public Pila () {
        raiz=null;
    }
 
    public void insertar(int x) {
    	Nodo nuevo;
        nuevo = new Nodo();
        nuevo.info = x;
        if (raiz==null)
        {
            nuevo.sig = null;
            raiz = nuevo;
        }
        else
        {
            nuevo.sig = raiz;
            raiz = nuevo;
        }
    }
 
    public int extraer ()
    {
        if (raiz!=null)
        {
            int informacion = raiz.info;
            raiz = raiz.sig;
            return informacion;
        }
        else
        {
            return Integer.MAX_VALUE;
        }
    }
 
    public void imprimir() {
        Nodo reco=raiz;
        System.out.println("Listado de todos los elementos de la pila.");
        while (reco!=null) {
            System.out.print(reco.info+"-");
            reco=reco.sig;
        }
        System.out.println();
    }
 
    public static void main(String[] ar) {
        Pila pila1=new Pila();
        pila1.insertar(10);
        pila1.insertar(40);
        pila1.insertar(3);
        pila1.imprimir();
        System.out.println("Extraemos de la pila:"+pila1.extraer());
        pila1.imprimir();
    }
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Consulta ejercicio Java

Publicado por Saray (2 intervenciones) el 26/05/2017 10:05:07
Si, está en la clase NodoPas, se me olvidó ponerla en el código!

Muchas gracias por la ayuda! Con lo tuyo y consultando con los compis lo entiendo mejor!

Buen fin de semana! =)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar