Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #ifndef COLA_H_INCLUDED
- #define COLA_H_INCLUDED
- #include<iostream>
- #include"assert.h"
- #include "Eslabon.h"
- template <typename E>
- class ColaDinamica
- {
- private:
- Eslabon<E> *frente;
- Eslabon<E> *atras;
- public:
- int tamanio;
- ColaDinamica(void);
- ~ColaDinamica(void);
- void vaciar(void);
- void encolar(const E &item);
- E descolar(void);
- const E &valorAlFrente(void)const;
- int obtenerTamanio(void)const;
- void mostrar();
- };
- template <typename E>
- ColaDinamica<E>::ColaDinamica(void)
- {
- frente=atras=new Eslabon<E>(NULL);
- tamanio=0;
- }
- template <typename E>
- ColaDinamica<E>::~ColaDinamica(void)
- {
- vaciar();
- }
- template <typename E>
- void ColaDinamica<E>::vaciar(void)
- {
- while(frente->siguiente!=NULL)
- {
- atras=frente;
- frente=frente->siguiente;
- delete atras;
- }
- atras=frente;
- tamanio=0;
- }
- template <typename E>
- void ColaDinamica<E>::encolar(const E &item)
- {
- atras=atras->siguiente=new Eslabon<E>(item,NULL);
- tamanio++;
- }
- template <typename E>
- E ColaDinamica<E>::descolar(void)
- {
- E item=frente->siguiente->elemento;
- if(tamanio==1)
- {
- delete atras;
- frente=atras;
- }
- else
- {
- Eslabon <E> *tmp=frente->siguiente;
- frente->siguiente=tmp->siguiente;
- delete tmp;
- tamanio--;
- }
- return item;
- }
- template <typename E>
- inline const E &ColaDinamica<E>::valorAlFrente(void)const
- {
- return frente->siguiente->elemento;
- }
- template <typename E>
- inline int ColaDinamica<E>::obtenerTamanio(void)const
- {
- return tamanio;
- }
- template <typename E>
- void ColaDinamica<E>::mostrar(void)
- {
- Eslabon<E> *temporal=frente->siguiente;
- E item;
- int cont=0;
- while (temporal!=NULL){
- item=temporal->elemento;
- temporal=temporal->siguiente;
- cout<<++cont<<": "<<item<<endl;
- }
- }
- #endif // COLA_H_INCLUDED
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement