Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <list>
- template<typename T>
- class Fila
- {
- private:
- std::list<T> fila;
- public:
- void inserir(const T& e){
- fila.push_back(e);
- }
- bool vazia(){
- return fila.empty();
- }
- T remover(){
- if(!this->vazia()){
- T e = fila.front();
- fila.pop_front();
- return e;
- }
- throw "Fila vazia!";
- }
- T frente(){
- if(!this->vazia())
- return fila.front();
- throw "Fila vazia!";
- }
- T final(){
- if(!this->vazia())
- return fila.back();
- throw "Fila vazia!";
- }
- };
- int main(void){
- Fila<double> f1;
- std::cout << "Antes de inserir elementos\n";
- if(f1.vazia())
- std::cout << "Fila vazia!\n";
- else
- std::cout << "Fila nao vazia!\n";
- try{
- double e = f1.remover();
- std::cout << "Removido o elemento: " << e << std::endl;
- }
- catch(const char* msg){
- std::cout << "Error: " << msg << std::endl;
- }
- f1.inserir(5.67);
- f1.inserir(9.23);
- f1.inserir(1.45);
- std::cout << "Depois de inserir elementos\n";
- if(f1.vazia())
- std::cout << "Fila vazia!\n";
- else
- std::cout << "Fila nao vazia!\n";
- try{
- std::cout << "Elemento da frente: " << f1.frente() << std::endl;
- }
- catch(const char* msg){
- std::cout << "Error: " << msg << std::endl;
- }
- try{
- std::cout << "Elemento do final: " << f1.final() << std::endl;
- }
- catch(const char* msg){
- std::cout << "Error: " << msg << std::endl;
- }
- try{
- double e = f1.remover();
- std::cout << "Removido o elemento: " << e << std::endl;
- }
- catch(const char* msg){
- std::cout << "Error: " << msg << std::endl;
- }
- Fila<std::string> p2;
- p2.inserir("C++");
- p2.inserir("PHP");
- p2.inserir("Javascript");
- try{
- std::cout << "Elemento da frente: " << p2.frente() << std::endl;
- }
- catch(const char* msg){
- std::cout << "Error: " << msg << std::endl;
- }
- try{
- std::cout << "Elemento do final: " << p2.final() << std::endl;
- }
- catch(const char* msg){
- std::cout << "Error: " << msg << std::endl;
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment