Clase cola

Necesito crear una clase de tipo cola que reciba cualquier tipo de datos ya sea entero real o carácter como lo puedo hacer, si me puedes ayudar.

1 respuesta

Respuesta
1
Suponiendo que sabes como funciona una cola, y conoces exactamente su implementación, para hacerla genérica puedes hacer dos cosas:
1) Te defines un tipo elemento, del que hereden los demás subtipos básicos que deseas. Así tendrás una classe entero, otra real, otra carácter etc... todas serán elementos y por tanto podrás tener una cola de elementos.
2) La segunda posibilidad, es usar templates. Con los templates puedes crear una cola de cualquier tipo (en particular, del tipo elemento) y luego, un elemento con templates podrá ser cualquier cosa. Así, cuando definas un elemento ya le especificas el tipo en el momento de su creación y no te hace falta definir herencias ni sobreescrituras ni nada.
En fin, no se si te he aclarado un poco las cosas. Sino es así, o necesitas también como implementar una cola... me lo dices y te miro haber si tengo algo.
La verdad es que es un tema relativamente nuevo para mi las colas así que si me pudieras echar una mano con la implementación o declarativa de de una cola que acepte variados datos seria pero de mucha de mucha ayuda, muchas gracias
En esta dirección podrás encontrar la implementación de una Lista en C++ genérica.
http://www.pello.info/?q=node/view/51
Para implementar una cola, puedes usar esta lista (cambiando el nombre lista por Cola) y almacenando un nuevo atributo que apunta al principio de la lista. De manera que la operación de siguiente desaparezca y cuando uses la operación getDato, te devuelva el valor del atributo del puntero del principio de la lista. Mientras el método agregar inserte por el final.
En fin, es que ahora no tengo mucho tiempo para hacerlo yo...
Si quieres vete mirando este código y así te familiarizas con los templates. Luego intenta implementar la cola y me envías el código o me comentas y le hecho una ojeada para que este todo correcto.
[email protected]

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas