IlanZiin

Untitled

Mar 17th, 2022
1,132
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.43 KB | None | 0 0
  1. #include <iostream>
  2. #include <list>
  3.  
  4. template<typename T>
  5. class Fila
  6. {
  7.     private:
  8.         std::list<T> fila;
  9.  
  10.     public:
  11.         void inserir(const T& e){
  12.             fila.push_back(e);
  13.         }
  14.  
  15.         bool vazia(){
  16.             return fila.empty();
  17.         }
  18.  
  19.         T remover(){
  20.             if(!this->vazia()){
  21.                 T e = fila.front();
  22.                 fila.pop_front();
  23.                 return e;
  24.             }
  25.             throw "Fila vazia!";
  26.         }
  27.  
  28.         T frente(){
  29.             if(!this->vazia())
  30.                 return fila.front();
  31.             throw "Fila vazia!";
  32.         }
  33.  
  34.         T final(){
  35.             if(!this->vazia())
  36.                 return fila.back();
  37.             throw "Fila vazia!";
  38.         }
  39. };
  40.  
  41. int main(void){
  42.     Fila<double> f1;
  43.  
  44.     std::cout << "Antes de inserir elementos\n";
  45.  
  46.     if(f1.vazia())
  47.         std::cout << "Fila vazia!\n";
  48.     else
  49.         std::cout << "Fila nao vazia!\n";
  50.  
  51.     try{
  52.         double e = f1.remover();
  53.         std::cout << "Removido o elemento: " << e << std::endl;
  54.     }
  55.     catch(const char* msg){
  56.         std::cout << "Error: " << msg << std::endl;
  57.     }
  58.  
  59.     f1.inserir(5.67);
  60.     f1.inserir(9.23);
  61.     f1.inserir(1.45);
  62.  
  63.     std::cout << "Depois de inserir elementos\n";
  64.  
  65.     if(f1.vazia())
  66.         std::cout << "Fila vazia!\n";
  67.     else
  68.         std::cout << "Fila nao vazia!\n";
  69.  
  70.     try{
  71.         std::cout << "Elemento da frente: " << f1.frente() << std::endl;
  72.     }
  73.     catch(const char* msg){
  74.         std::cout << "Error: " << msg << std::endl;
  75.     }
  76.  
  77.     try{
  78.         std::cout << "Elemento do final: " << f1.final() << std::endl;
  79.     }
  80.     catch(const char* msg){
  81.         std::cout << "Error: " << msg << std::endl;
  82.     }
  83.  
  84.     try{
  85.         double e = f1.remover();
  86.         std::cout << "Removido o elemento:  " << e << std::endl;
  87.     }
  88.     catch(const char* msg){
  89.         std::cout << "Error: " << msg << std::endl;
  90.     }
  91.  
  92.     Fila<std::string> p2;
  93.  
  94.     p2.inserir("C++");
  95.     p2.inserir("PHP");
  96.     p2.inserir("Javascript");
  97.  
  98.     try{
  99.         std::cout << "Elemento da frente: " << p2.frente() << std::endl;
  100.     }
  101.     catch(const char* msg){
  102.         std::cout << "Error: " << msg << std::endl;
  103.     }
  104.  
  105.     try{
  106.         std::cout << "Elemento do final: " << p2.final() << std::endl;
  107.     }
  108.     catch(const char* msg){
  109.         std::cout << "Error: " << msg << std::endl;
  110.     }
  111.  
  112.     return 0;
  113. }
Advertisement
Add Comment
Please, Sign In to add comment