Foros aprenderaprogramar.com
Aprender a programar => C, C++, C#, Java, Visual Basic, HTML, PHP, CSS, Javascript, Ajax, Joomla, MySql y más => Mensaje iniciado por: javaquery en 08 de Abril 2017, 13:48
-
Buenas tengo que documentar el siguiente codigo utilizando javadoc, pero no entiendo bien el código
public class Stack {
private int tamaño;
private Vector<Integer> elementos;
public Stack() {
elementos = new Vector<Integer>();
tamaño = 0;
}
public boolean stackVacio () {
if (tamaño==0) {
return true;
}
return false;
}
public void apilar ( Integer o ) {
elementos.add(tamaño, o);
tamaño++;
}
public Integer desapilar () {
try {
if(stackVacio())
throw new ErrorStackVacio();
else {
return elementos.get(--tamaño);
}
} catch(ErrorStackVacio error) {
System.out.println("ERROR: el stack está vacio");
return null;
}
}
public int getNumElements() {
return tamaño;
}
@SuppressWarnings("serial")
class ErrorStackVacio extends Exception {
public ErrorStackVacio() {
super();
}
}
}
-
Hola.
El código que presentas es un representación del funcionamiento de la clase Stack, es decir va apilando elementos Integer en este caso y para borrar elementos usa el método desapilar que lo que hace es sacar el último elemento introducido, para que veas en que consiste esta clase, puedes verlo en este enlace:
https://www.aprenderaprogramar.es/index.php?option=com_content&view=article&id=608:la-estructura-de-datos-pila-en-java-clase-stack-del-api-java-ejemplo-simple-y-ejercicios-resueltos-cu00923c&catid=58&Itemid=180
y la clase Vector que también es usada en este código la puedes ver en este otro enlace:
https://www.aprenderaprogramar.es/index.php?option=com_content&view=article&id=606:la-clase-vector-del-api-java-metodos-trimtosize-y-ensurecapacity-ejemplo-y-ejercicios-resueltos-cu00922c&catid=58&Itemid=180
Saludos. ;D
-
gracias
la he documentado asi, queria saber si esta bien
import java.util.Vector;
/**
* El funcionamiento de la clase Stack va apilando elementos integer
*
* @version 1.3 08/04/2017
* @author javi
*/
public class Stack {
// declaracion de los atributos privados.
private int tamaño;
private Vector<Integer> elementos;
/**
* constructor
*/
public Stack() {
elementos = new Vector<Integer>();
tamaño = 0;
}
/**
* metodo si la cola esta vacia
*
* @return verdadero is la cola esta vacio o falso caso contrario
*/
public boolean stackVacio() {
if (tamaño == 0) {
return true;
}
return false;
}
/**
* metodo para apilar elementos de la clase <code>Stack</code>
*
* @param o
* @param tamaño
*/
public void apilar(Integer o) {
elementos.add(tamaño, o);
tamaño++;
}
/**
* metodo para desapilar elementos, lo que hace es sacar el ultimo elemento
* introducido
*@return
*@exception
*/
public Integer desapilar() {
try {
if (stackVacio())
throw new ErrorStackVacio();
else {
return elementos.get(--tamaño);
}
} catch (ErrorStackVacio error) {
System.out.println("ERROR: el stack está vacio");
return null;
}
}
// metodo que devuelve numero elementos
public int getNumElements() {
return tamaño;
}
@SuppressWarnings("serial")
class ErrorStackVacio extends Exception {
public ErrorStackVacio() {
super();
}
}
}
-
Buenas Javi.
El primer comentario lo completaría añadiendo que se apilan objetos de tipo Integer en un vector.
En el constructor no está demás tampoco explicar lo que hace, en este caso crea un Vector y le asigna un valor por defecto al atributo tamaño.
En el método stackVacio, comprueba si la pila contiene algún elemento usando para ello el valor del atributo tamaño, si dicho valor es igual a 0 devolverá true y en caso distinto devolverá false.
El método apilar añade objetos de tipo Integer en el vector elementos de la clase. Solo recibe un parámetro, en este caso o, puesto que tamaño es un atributo de la clase.
El método desapilar más que sacar elementos del vector lo que hace es simularlo, porque realmente lo que hace es reducir el valor del atributo tamaño restándole uno, para que cuando se quiera volver a introducir un nuevo objeto en el vector elementos se sobreescriban los existentes, pero no borra los anteriores. La verdad que el código es algo incompleto, además lo que hace este método es devolver(return) el último objeto que contiene el vector elementos.
Saludos. ;D