Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- using namespace std;
- #ifndef COLA_H
- #define COLA_H
- template <class Tipo>
- class Cola {
- public:
- class Nodo {
- public:
- Nodo(const Tipo& e, Nodo *p) : dato(e), link(p) {}
- ~Nodo() { }
- Tipo dato;
- Nodo *link;
- };
- Cola();
- virtual ~Cola();
- void agregar(Tipo e);
- Tipo extraer();
- bool vacia();
- private:
- Nodo *mPrimero;
- Nodo *mUltimo;
- };
- #endif // COLA_H
- //#include "Cola.h"
- //#define NULL 0
- template <class Tipo>
- Cola<Tipo>::Cola() : mPrimero(NULL), mUltimo(NULL) {}
- template <class Tipo>
- Cola<Tipo>::~Cola() { }
- template <class Tipo>
- void Cola<Tipo>::agregar(Tipo e) {
- Nodo *p = new Nodo(e, NULL);
- if(vacia()) {
- mPrimero = p;
- mUltimo = mPrimero;
- return;
- }
- mUltimo->link = p;
- mUltimo = p;
- }
- template <class Tipo>
- Tipo Cola<Tipo>::extraer() {
- if(vacia())
- return Tipo();
- Nodo *p = mPrimero;
- Tipo e = mPrimero->dato;
- mPrimero = mPrimero->link;
- delete p;
- return e;
- }
- template <class Tipo>
- bool Cola<Tipo>::vacia() {
- return !(mPrimero);
- }
- #include <iomanip>
- int main()
- {
- Cola<int> c;
- c.agregar(1);
- c.agregar(2);
- c.agregar(3);
- while(!c.vacia())
- cout << c.extraer()<<endl;
- cout << fixed;
- cout << setprecision(2); //#include <iomanip>
- Cola<float> c2;
- c2.agregar(1.11f);
- c2.agregar(2.22f);
- c2.agregar(3.33f);
- while(!c2.vacia())
- cout << c2.extraer()<<endl;
- Cola<string> c3;
- c3.agregar("Uno");
- c3.agregar("Dos");
- c3.agregar("Tres");
- while(!c3.vacia())
- cout << c3.extraer()<<endl;
- //vuelvo a cargar los datos
- Cola<int> c6;
- c6.agregar(1);
- c6.agregar(2);
- c6.agregar(3);
- Cola<int> c7;
- c7.agregar(11);
- c7.agregar(21);
- c7.agregar(31);
- Cola< Cola<int> > c4;
- c4.agregar(c6);
- c4.agregar(c7);
- while(!c4.vacia()){
- Cola<int> tmp = c4.extraer();
- cout <<"mostrando subCola\n";
- while(!tmp.vacia())
- cout << tmp.extraer()<<endl;
- }
- return 0;
- }
- /**
- clase original
- #ifndef COLA_H
- #define COLA_H
- class Cola {
- public:
- class Nodo {
- public:
- Nodo(const int& e, Nodo *p) : dato(e), link(p) {}
- ~Nodo() { }
- int dato;
- Nodo *link;
- };
- Cola();
- virtual ~Cola();
- void agregar(int e);
- int extraer();
- bool vacia();
- private:
- Nodo *mPrimero;
- Nodo *mUltimo;
- };
- #endif // COLA_H
- #include "Cola.h"
- #define NULL 0
- Cola::Cola() : mPrimero(NULL), mUltimo(NULL) {}
- Cola::~Cola() { }
- void Cola::agregar(int e) {
- Nodo *p = new Nodo(e, NULL);
- if(vacia()) {
- mPrimero = p;
- mUltimo = mPrimero;
- return;
- }
- mUltimo->link = p;
- mUltimo = p;
- }
- int Cola::extraer() {
- if(vacia())
- return int();
- Nodo *p = mPrimero;
- int e = mPrimero->dato;
- mPrimero = mPrimero->link;
- delete p;
- return e;
- }
- bool Cola::vacia() {
- return !(mPrimero);
- }
- ***/
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement