Muchos en la universidad me han dicho para hacerles un programa que trabaje por colas, y yo les pregunto ¿Qué es una cola?.... Bueno, algunos me responden y otros no, lo importante es saber de que estamos hablando y porque lo estamos hablando, no debería pedir cosas de las que no se ni que son....
A todo esto no entrare en detalles, existen dos tipos de sistemas, el FIFO y el LIFO (para ver que significan esta google), y como me lo han pedido ya varias veces pues, aquí les dejo el código, que no es difícil de aprender y mucho menos de interpretar....
Para Java
import java.util.*; public class Cola { public static void main( String args[] ){ Scanner leer = new Scanner(System.in); colagenerica obj = new colagenerica(); int opcion; int numero; do{ menu(); opcion = leer.nextInt(); switch(opcion){ case 1: System.out.println( "Numero a insertar" ); numero = leer.nextInt(); if(obj.inscola(numero)){ System.out.println( "nEl numero "+numero+" se inserto en la cola" ); System.out.println(); } else{ System.out.println( "nCola llena" ); } break; case 2: if(obj.retcola()){ System.out.println( "nEl dato retirado fue: "+obj.dret ); } else{ System.out.println( "nCola vacia" ); } break; case 3: if(obj.fre==-1 && obj.fin==-1){ System.out.println( "nCola vacia" ); } else{ for(int i=obj.fre; i<=obj.fin; i++){ System.out.print(obj.c[i]+" "); } break; } } } while(opcion != 4); } public static void menu(){ System.out.println( "n"); System.out.println( "t Menu para colas n" ); System.out.println( "1.- Insertar" ); System.out.println( "2.- Retirar" ); System.out.println( "3.- Estado" ); System.out.println( "4.- Fin" ); System.out.println( "n Selecciona" ); } }Y aquí esta lo importante, la clase "colagenerica" que almacena los datos que manejamos y hace las operaciones sobre los mismos
class colagenerica { public int max; protected Object dret; public Object c[]; public int fre = -1; public int fin = -1; public colagenerica() { max=20; c=new Object [max]; } public colagenerica(int n) { max=n; c=new Object [max]; } public boolean colallena(int fin,int max) { boolean llena; if (fin==max-1) llena=true; else llena=false; return llena; } public boolean colavacia(int fre) { boolean vacia; if (fre==-1) vacia=true; else vacia=false; return vacia; } public boolean inscola(Object dato) { if (fin==max-1) return false; fin++; c[fin] = dato; if (fin==0) fre=0; return true; } public boolean retcola() { if (fre ==-1) return false; dret=c[fre]; if (fre==fin) { fre=-1; fin=-1; } else fre++; return true; } }
Para C++
template <class T> class Cola{ private: struct Nodo{ T elemento; struct Nodo* siguiente; }* primero; struct Nodo* ultimo; unsigned int elementos; public: Cola(){ elementos = 0; } ~Cola(){ while (elementos != 0) pop(); } void push(const T& elem){ Nodo* aux = new Nodo; aux->elemento = elem; if (elementos == 0) primero = aux; else ultimo->siguiente = aux; ultimo = aux; ++elementos; } void pop(){ Nodo* aux = primero; primero = primero->siguiente; delete aux; --elementos; } T consultar() const{ return primero->elemento; } bool vacia() const{ return elementos == 0; } unsigned int size() const{ return elementos; } };NOTA: todo esta hecho para que se vea desde la consola y se aprecie mejor la forma en que trabajan las colas, el código de C++ solo lo utilice una vez y nunca me dijeron si funciono o no, suerte...
Recibe notificaciones por correo
8 Comentarios
Escribir Comentariodigamos si necesito un programa que utilice pilas, colas y filas cmo se haria?
Responderpilas, colas, filas o como quieras llamarle es lo mismo, si necesitas un programa que requiera de esto aquí esta el código, ahora, si quieres un menú de opciones para elegir entre una u otra opción puedes usar un "switch" puedes probar esto: "enlace"...
ResponderSaludos!
esta muy bien el programa oyes necesito un programa de pilas para leer archivos txt y que ay se inserte el pop,push para que los jale elprograma segun se hase con el metodo de cadenas pero no le encuentre ayudame porfas......................
ResponderDisculpa mi tardanza al responder pero los fines de semana estoy algo corto de tiempo, bueno, lo que necesitas es leer el archivo de texto y unirlo con este ejemplo que publico aquí, almacenas los valores en variables y listo.
ResponderPara leer y guardar datos en archivos con java están estas entradas:
Guardar un Area de Texto
Abrir un Area de Texto
Abrir un Archivo
De forma tal que modificas este ejemplo para que no utilice el "scanner" (leer por teclado) y cargue los datos del archivo seleccionado que almacenas en las variables del programa.... Cualquier cosa me comentas... Saludos!
gracias amigo estoy checando lo que pasa esque ya lo tengo como leer pero Ahora no se como jalar el metodo leer al main pero gracias heeee buen aporte
ResponderDe nada... Simplemente cárgalo, escribe en el método principal el nombre del método, por ejemplo:
Responderpublic static void main (String [] args){
Metodo_Leer();
}
Esto carga de una el método para la lectura, solo es cuestión de que cargues en el lugar que quieras procesar los datos... Saludos!
Estimado:
ResponderComo puedo agregar a este programagra colas la opcion de sumar, contar y promediar los elementos??
Saludos!
Usa métodos separados y combina con el switch, en el Blog hay entradas al respecto
ResponderLamentablemente hay muchos usuarios en la red que han llegado al blog para escribir obscenidades, así que la moderación se hace necesaria. Recuerda utilizar un lenguaje correcto y espera a que sea aprobado.
Si necesitas publicar código haz click en "Conversión" para hacerlo legible.
ConversiónConversión