Tal vez le interese leer sobre listas enlazadas
Según lo que he aprendido, las pilas y colas no son estructura de datos, mas bien son formas de acceder a la información contenida en una estructura de dato como puede ser una lista o vector, entre otras.Definiciones:
Una pila (stack en inglés) es una lista ordinal o estructura de datos en la que el modo de acceso a sus elementos es de tipo LIFO (del inglés Last In First Out, último en entrar, primero en salir) que permite almacenar y recuperar datos. (por wikipedia).
Operaciones de la pila: Una pila cuenta con 2 operaciones imprescindibles: apilar y desapilar, a las que en las implementaciones modernas de las pilas se suelen añadir más de uso habitual.
Crear: se crea la pila vacía (size).
Apilar: se añade un elemento a la pila.(push)
Desapilar: se elimina el elemento frontal de la pila.(pop)
Cima: devuelve el elemento que esta en la cima de la pila. (top o peek)
Vacía: devuelve cierto si la pila está vacía o falso en caso contrario (empty).
Operaciones de la pila: Una pila cuenta con 2 operaciones imprescindibles: apilar y desapilar, a las que en las implementaciones modernas de las pilas se suelen añadir más de uso habitual.
Crear: se crea la pila vacía (size).
Apilar: se añade un elemento a la pila.(push)
Desapilar: se elimina el elemento frontal de la pila.(pop)
Cima: devuelve el elemento que esta en la cima de la pila. (top o peek)
Vacía: devuelve cierto si la pila está vacía o falso en caso contrario (empty).
Una cola (también llamada fila) es una estructura de datos (no estoy deacuerdo), caracterizada por ser una secuencia de elementos en la que la operación de inserción push se realiza por un extremo y la operación de extracción pop por el otro. También se le llama estructura FIFO (del inglés First In First Out), debido a que el primer elemento en entrar será también el primero en salir.(por wikipedia)
Operaciones Básicas de una Cola
Crear: se crea la cola vacía.
Encolar (añadir, entrar, insertar): se añade un elemento a la cola. Se añade al final de esta.
Desencolar (sacar, salir, eliminar): se elimina el elemento frontal de la cola, es decir, el primer elemento que entró.
Frente (consultar, front): se devuelve el elemento frontal de la cola, es decir, el primer elemento que entró.
Vacía: devuelve cierto si la pila está vacía o falso en caso contrario (empty).
Tal vez tambien te interese esto: Implementacion de una lista simple enlazada.
Mas informacion: Pila, cola.
Codigo Pila:
//Autor: Rey Salcedo Padilla import java.util.ArrayList; public class Pila extends ArrayList{ //se añade un elemento a la pila.(push) public void apilar(Object dato){ if(dato != null){ this.add(dato); }else{ System.out.println("Introduzca un dato no nulo"); } } //se elimina el elemento frontal de la pila.(pop) public void desapilar(){ if(size() > 0){ this.remove(this.size()-1); } } //devuelve el elemento que esta en la cima de la pila. (top o peek) public Object cima(){ Object datoAuxiliar = null; if(this.size() > 0){ datoAuxiliar = this.get(this.size()-1); } return datoAuxiliar; } //devuelve cierto si la pila está vacía o falso en caso contrario (empty). public boolean vacia(){ return this.isEmpty(); } }
//Autor:Rey Salcedo Padilla import java.util.ArrayList; public class Cola extends ArrayList{ //se añade un elemento a la cola. Se añade al final de esta. public void encolar(Object dato){ if(dato != null){ this.add(dato); }else{ System.out.println("Introduzca un dato no nulo"); } } //se elimina el elemento frontal de la cola, es decir, el primer elemento que entró. public void desencolar(){ if(this.size() > 0){ this.remove(0); } } //se devuelve el elemento frontal de la cola, es decir, el primer elemento que entró. public Object frente(){ Object datoAuxiliar = null; if(this.size() > 0){ datoAuxiliar = this.get(0); } return datoAuxiliar; } //devuelve cierto si la pila está vacía o falso en caso contrario (empty). public boolean vacia(){ return this.isEmpty(); } }
//Autor:Rey Salcedo Padilla
public class Main{
public static void main(String []args){
System.out.println("------Pila------");
Pila pila = new Pila();
pila.apilar("A");
pila.apilar("B");
pila.apilar("C");
pila.apilar("D");
System.out.println("Esta vacia la pila?:" + pila.vacia());
System.out.println("Tamaño de la pila:" + pila.size());
System.out.println(pila.cima());
pila.desapilar();
System.out.println(pila.cima());
pila.desapilar();
System.out.println(pila.cima());
pila.desapilar();
System.out.println(pila.cima());
pila.desapilar();
System.out.println("Esta vacia la pila?:" + pila.vacia());
System.out.println("------Cola------");
Cola cola = new Cola();
cola.encolar("A");
cola.encolar("B");
cola.encolar("C");
cola.encolar("D");
System.out.println("Esta vacia la cola?:" + cola.vacia());
System.out.println("Tamaño de la cola:" + cola.size());
System.out.println(cola.frente());
cola.desencolar();
System.out.println(cola.frente());
cola.desencolar();
System.out.println(cola.frente());
cola.desencolar();
System.out.println(cola.frente());
cola.desencolar();
System.out.println("Esta vacia la cola?:" + cola.vacia());
}
}
eres un capo men gracias
ResponderBorrarMe alegra que te halla servido.
ResponderBorrarBien bien...
ResponderBorrarque sencillo lo hiciste, gracias
ResponderBorrarel codigo cola pero con interfaz??
ResponderBorrarHola si te refieres a un Gui, con componentes como JList por ejemplo, se me ocurre asociar un DefaultListModel a la lista o cola respectectivamente teniendo en cuenta que las implemente como clases hijas de ArrayList.
ResponderBorrar1.- necesito que me ayuden por favor, una lista de 5 números 10, 12, 15, 20, 25, usando pila y cola extraer el numero del medio es decir, 15.
ResponderBorrar2.- dada una cantidad de 10 números usar pilas y cola
traspasar a una estructura para luego imprimirla.
5,4,3,2,1,10,9,8,7,6
Hola xlaudia_18_1989, en el ejemplo que publico en este blog está prácticamente solucionado lo que pides, anímate e intenta, y si tienes dudas puntuales pregúntame, con gusto te ayudaré
Borrarpucha lo se pero tengo que estudiar y hacer eso, por eso pido ayuda
BorrarGracias man!!! me ha servido un monton!!!
ResponderBorrarHola como puedo hacer el metodo insertar cola con datos aleatorios?
ResponderBorrarme salvaste..me sirvio muchisimo, muchas gracias!!
ResponderBorrarayuda para hoy urgente en este pseudocodigo
ResponderBorrarCrear una clase en JAVA que permita definir una pila construida a partir de un arreglo. Adicionar un método que permita mostrar cuántos datos se pueden agregar a la pila o si ya está llena.
Crear un objeto de esta clase con un tamaño de 9.
Apilar 5 valores numéricos aleatorios.
Mostrar el tamaño actual de la pila.
Borrar un dato.
Indicar nuevamente el tamaño actual.
Enseñar la cantidad de datos que se pueden agregar a la pila.
En JAVA, utilizar la clase Stack para crear dos nuevas pilas. Agregar 7 datos a la primera pila. La segunda pila deberá contener los mismos datos de la primera, pero en orden inverso.