IgorWC Postado Outubro 14, 2015 Denunciar Share Postado Outubro 14, 2015 Preciso resolver esse exercício mais não estou entendendo como se alguém puder ajudar " Criar uma classe que implemente uma fila usando uma linked list. E o programa que teste esta classe " Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 vangodp Postado Outubro 14, 2015 Denunciar Share Postado Outubro 14, 2015 #include <iostream> using namespace std; class nodo { public: nodo ( int v, nodo *sig = NULL ) { valor = v; siguinte = sig; } private: int valor; nodo *siguinte; friend class fila; }; typedef nodo *pnodo; class fila { public: fila() : primeiro ( NULL ), ultimo ( NULL ) {} ~fila(); void Adicionar ( int v ); int Ler(); private: pnodo primeiro, ultimo; }; fila::~fila() { while ( primeiro ) Ler(); } void fila::Adicionar ( int v ) { pnodo nuevo; /* Criar um nodo novo */ /* Este este sempre vai ser o ultimo nodo, nunca deve ter siguinte*/ nuevo = new nodo ( v ); /* Si a fila nao estava vazia, adicionamos o novo a continuação do ultimo */ if ( ultimo ) ultimo->siguinte = nuevo; /* Agora o último elemento da fila é o novo nodo */ ultimo = nuevo; /* Si primeiro é NULL, a fila estava vazia, agora o primeiro vai apontar ao novo nodo*/ if ( !primeiro ) primeiro = nuevo; } int fila::Ler() { pnodo nodo; /* variavel auxiliar para manipular o nodo */ int v; /* variavel auxiliar para o retorno */ /* Nodo aponta ao primeiro elemento da fila */ nodo = primeiro; if ( !nodo ) return 0; /* Si não ha nodos na fila retornamos 0 */ /* Atribuimos ao primeiro nodo a direcão do segundo nodo */ primeiro = nodo->siguinte; /* Guardamos o valor de retorno */ v = nodo->valor; /* Borrar o nodo */ delete nodo; /* Si a fila ficou vazia, ultimo deve ser NULL tambem*/ if ( !primeiro ) ultimo = NULL; return v; } int main() { fila fila; cout << "Adicionar(10)" << endl; cout << "Adicionar(20)" << endl; //adicionamos 2 inteiros fila.Adicionar ( 10 ); fila.Adicionar ( 20 ); //lemos 3 inteiros porem o terceiro vai ser zero pois nao ha mais nada que ler, somente tinha 2 elementos na fila. cout << "Ler: " << fila.Ler() << endl; cout << "Ler: " << fila.Ler() << endl; cout << "Ler: " << fila.Ler() << endl; // cin.get(); return 0; }Isso é um modelo funcional de uma fila, si você atribuir 2 valores inteiros a essa fila você pode fazer 2 leituras, as leituras são destrutivas, isso quer dizer que ao ler você esta extraindo o inteiro da fila. Faça um menu e estude o código para aprender. Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
IgorWC
Preciso resolver esse exercício mais não estou entendendo como se alguém puder ajudar
" Criar uma classe que implemente uma fila usando uma linked list. E o programa que teste esta classe "
Link para o comentário
Compartilhar em outros sites
1 resposta a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.