Baixe o app para aproveitar ainda mais
Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original
5bb1a87c-d636-4706-a113-0223d4e0e4bb Algoritmos Prontos/ArvoreTeste/ArvoreTeste.pro #------------------------------------------------- # # Project created by QtCreator 2015-11-18T20:50:27 # #------------------------------------------------- QT += core QT -= gui TARGET = ArvoreTeste CONFIG += console CONFIG -= app_bundle TEMPLATE = app SOURCES += main.cpp \ arvore.cpp HEADERS += \ arvore.h Algoritmos Prontos/ArvoreTeste/ArvoreTeste.pro.user ProjectExplorer.Project.ActiveTarget 0 ProjectExplorer.Project.EditorSettings true false true Cpp CppGlobal QmlJS QmlJSGlobal 2 UTF-8 false 4 false 80 true true 1 true false 0 true 0 8 true 1 true true true false ProjectExplorer.Project.PluginSettings ProjectExplorer.Project.Target.0 Desktop Desktop {528da7ad-a39b-4f4c-ab64-a2a815ce0b01} 0 0 0 /home/rick/build-ArvoreTeste-Desktop-Debug true qmake QtProjectManager.QMakeBuildStep false true false true Make Qt4ProjectManager.MakeStep -w -r false 2 Build ProjectExplorer.BuildSteps.Build true Make Qt4ProjectManager.MakeStep -w -r true clean 1 Clean ProjectExplorer.BuildSteps.Clean 2 false Debug Qt4ProjectManager.Qt4BuildConfiguration 2 true /home/rick/build-ArvoreTeste-Desktop-Release true qmake QtProjectManager.QMakeBuildStep false true false true Make Qt4ProjectManager.MakeStep -w -r false 2 Build ProjectExplorer.BuildSteps.Build true Make Qt4ProjectManager.MakeStep -w -r true clean 1 Clean ProjectExplorer.BuildSteps.Clean 2 false Release Qt4ProjectManager.Qt4BuildConfiguration 0 true 2 0 Deploy ProjectExplorer.BuildSteps.Deploy 1 Deploy locally ProjectExplorer.DefaultDeployConfiguration 1 false false false false true 0.01 10 true 1 25 1 true false true valgrind 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 2 ArvoreTeste ArvoreTeste2 Qt4ProjectManager.Qt4RunConfiguration:/home/rick/Documentos/ED - exemplos/ArvoreTeste/ArvoreTeste.pro ArvoreTeste.pro false true 3768 false true false false true 1 ProjectExplorer.Project.TargetCount 1 ProjectExplorer.Project.Updater.EnvironmentId {966055ba-b836-4a12-aafd-ade71c6837b1} ProjectExplorer.Project.Updater.FileVersion 15 Algoritmos Prontos/fila/main.cpp #include <iostream> #include "fila.h" #include "fpessoa.h" using namespace std; int main () { fila *fl = new fila(); fila *novafila; fpessoa *p; string nome; int escolha; do{ cout<<"\n Menu" <<endl; cout<<" Digite 1 para inserir nomes"<<endl; cout<<" Digite 2 para remover nomes"<<endl; cout<<" Digite 3 para exibir a fila"<<endl; cout<<" Digite 4 para Sair "<<endl; cin>>escolha; cin.ignore(); switch (escolha) { case 1: p = new fpessoa(); cout<<"Digite nome "<<endl; getline(cin,nome); p->setnome(nome); fl->ENQUEUE(p); p = 0; cout<<"Armazenado"<<endl; break; case 2: cout<<"Retirado ultimo elemento"<<endl; fl->DEQUEUE(); break; case 3: novafila = new fila(); while(fl->getinicio()!=0) { p = new fpessoa(); p = fl->DEQUEUE(); cout<<" - "<<p->getnome(); novafila->ENQUEUE(p); p = 0; } delete fl; fl = novafila; novafila=0; break; case 4: cout<<"\nFim de Programa"<<endl; return 0; break; default: cout<<"Opção inválida"<<endl; break; } }while (escolha != 4); delete fl; delete p; fl = 0; p = 0; return 0; } Algoritmos Prontos/listaNomes/listaNomes.pro #------------------------------------------------- # # Project created by QtCreator 2015-08-28T20:00:36 # #------------------------------------------------- QT += core QT -= gui TARGET = listaNomes CONFIG += console CONFIG -= app_bundle TEMPLATE = app SOURCES += main.cpp \ pessoa.cpp \ lista.cpp HEADERS += \ pessoa.h \ lista.h Algoritmos Prontos/pilha/pilha.cpp #include "pilha.h" pilha::pilha() { topo = 0; } pilha::~pilha() { delete topo; } void pilha::setTopo(ppessoa *novo) { topo = novo; } ppessoa* pilha::getTopo() { return topo; } void pilha::PUSH(ppessoa *novo) { if(topo==0) { topo = novo; } else { novo->setpilha(getTopo()); topo->setantepilha(novo); topo = novo; } } ppessoa* pilha::POP() { if(topo==0) { return 0; } ppessoa *aux=topo; if(topo->getpilha()==0) { setTopo(0); } else { topo = topo->getpilha(); topo->setantepilha(0); aux->setpilha(0); } return aux; } Algoritmos Prontos/fila/fila.pro #------------------------------------------------- # # Project created by QtCreator 2015-09-09T09:32:15 # #------------------------------------------------- QT += core QT -= gui TARGET = fila CONFIG += console CONFIG -= app_bundle TEMPLATE = app SOURCES += main.cpp \ fila.cpp \ fpessoa.cpp HEADERS += \ fila.h \ fpessoa.h Algoritmos Prontos/listaNomes/main.cpp #include <iostream> #include <string> #include "pessoa.h" #include "lista.h" using namespace std; int main () { lista *list = new lista(); pessoa *p; string nome; int escolha; do{ cout<<" ***menu*** "<<endl; cout<<"1 - Digite para adicionar nomes ao inicio da lista"<<endl; cout<<"2 - Digite para adicionar nomes ao fim da lista"<<endl; cout<<"3 - Digite para remover nomes do inicio da lista"<<endl; cout<<"4 - Digite para remover nomes do fim da lista"<<endl; cout<<"5 - Digite para remover qualquer nome"<<endl; cout<<"6 - Digite para exibir lista"<<endl; cout<<"7 - Digite para sair do programa"<<endl; cin>>escolha; cin.ignore(); switch (escolha) { case 1: //adicionando no inicio; cout<<"Digite o nome para adicionar no incio lista"<<endl; getline(cin,nome); p = new pessoa(); p->setnome(nome); list->inserirI(p); //ainda em construção; p=0; cout<<"Armazenado no inicio"<<endl; break; case 2: //adicionando no final; cout<<"Digite nome para adicionar no fim da lista"<<endl; getline(cin,nome); p = new pessoa(); p->setnome(nome); list->inserir(p); p=0; cout<<"Armazenado no fim"<<endl; break; case 3: // retiro do inicio; list->retirar(); cout<<"Removido do inicio"<<endl; break; case 4: //retiro do final; list->retirarF(); cout<<"Removido do final"<<endl; break; case 5: // ainda em construção; cout<<"Digite nome para deletar da lista"<<endl; getline(cin,nome); list->excluirE(nome); break; case 6: //exibição simples; list->exibir(); break; case 7: delete p; delete list; break; default: cout<<"\nOpção inválida! Digite novamente"<<endl; break; } }while (escolha != 7); cout<<"Fim de Programa"<<endl; delete p; delete list; p=0; list=0; return 0; } Algoritmos Prontos/fila/fila.pro.user.9349f66 ProjectExplorer.Project.ActiveTarget 0 ProjectExplorer.Project.EditorSettings true false true Cpp CppGlobal QmlJS QmlJSGlobal 2 UTF-8 false 4 false 80 true true 1 true false 0 true 0 8 true 1 true true true false ProjectExplorer.Project.PluginSettings ProjectExplorer.Project.Target.0 Desktop Desktop {d879a297-2788-42b3-8463-efd921e30ced} 0 0 0 /home/ricardo/build-fila-Desktop-Debug true qmake QtProjectManager.QMakeBuildStep false true false true Make Qt4ProjectManager.MakeStep -w -r false 2 Build ProjectExplorer.BuildSteps.Build true Make Qt4ProjectManager.MakeStep -w -r true clean 1 Clean ProjectExplorer.BuildSteps.Clean 2 false Debug Qt4ProjectManager.Qt4BuildConfiguration 2 true /home/ricardo/build-fila-Desktop-Release true qmake QtProjectManager.QMakeBuildStep false true false true Make Qt4ProjectManager.MakeStep -w -r false 2 Build ProjectExplorer.BuildSteps.Build true Make Qt4ProjectManager.MakeStep -w -r true clean 1 Clean ProjectExplorer.BuildSteps.Clean 2 false Release Qt4ProjectManager.Qt4BuildConfiguration 0 true 2 0 Deploy ProjectExplorer.BuildSteps.Deploy 1 Deploy locally ProjectExplorer.DefaultDeployConfiguration 1 false false false false true 0.01 10 true 1 25 1 true false true valgrind 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 2 fila fila2 Qt4ProjectManager.Qt4RunConfiguration:/home/ricardo/Área de Trabalho/Estruturas de Dados I - cmp 1054/N1/fila/fila.pro fila.pro false true 3768 false true false false true 1 ProjectExplorer.Project.TargetCount 1 ProjectExplorer.Project.Updater.EnvironmentId {9349f66a-bdd4-47b3-bdfa-420ee3f2fae7} ProjectExplorer.Project.Updater.FileVersion 15 Algoritmos Prontos/ArvoreTeste/arvore.h /* Disciplina : Estrutura de Dados I - Árvore Binária de Pesquisa; * Autor : Ricardo dos Santos; * Data: 19/11/2015; */ #ifndef ARVORE_H #define ARVORE_H #include <cstdlib> #include <iostream> class Arvore { public: Arvore() { pai=filhoEsquerdo=filhoDireito=raiz=NULL; chave=0;} ~Arvore(); void setPai(Arvore* pai) { this->pai = pai;} void setFilhoEsquerdo(Arvore* filhoEsquerdo) { this->filhoEsquerdo = filhoEsquerdo;} void setFilhoDireito(Arvore* filhoDireito) { this->filhoDireito = filhoDireito;} void setRaiz(Arvore* raiz) { this->raiz = raiz; } Arvore* getPai() {return this->pai;} Arvore* getFilhoEsquerdo() {return this->filhoEsquerdo;} Arvore* getFilhoDireito() {return this->filhoDireito;} Arvore* getRaiz() {return this->raiz;} void setChave(int numero) {chave = numero;} int getChave() {return chave;} void inserir(Arvore*); void emOrdem(Arvore*); void preOrdem(Arvore*); void posOrdem(Arvore*); Arvore* minimo(Arvore* novo); Arvore* maximo(Arvore* novo); Arvore* buscar(Arvore*,int); Arvore* buscaIterativa(Arvore*,int); Arvore* sucessor(Arvore*); Arvore* predecessor(Arvore*); Arvore *remover(Arvore*); void transplante(Arvore*,Arvore*); private: Arvore *pai; Arvore *filhoEsquerdo; Arvore *filhoDireito; Arvore *raiz; int chave; }; #endif // ARVORE_H Algoritmos Prontos/listaNomes/pessoa.h #ifndef PESSOA_H #define PESSOA_H #include <iostream> #include <string> using namespace std; class pessoa { public: pessoa(); ~pessoa(); void setnome(string); void setproximo(pessoa *n); string getnome(); pessoa *getproximo(); private: string nome; pessoa *proximo; }; #endif // PESSOA_H Algoritmos Prontos/ArvoreRedBlack2/arvore.cpp /* Disciplina : Estrutura de Dados I - Árvore Binária Red Black; * Autor : Ricardo dos Santos; * Data: 02/12/2015; */ #include "arvore.h" arvore* arvore::Nil = new arvore(); arvore::arvore() { pai=esquerdo=direito=raiz=arvore::Nil; cor = " "; chave = 0; } arvore::~arvore() { if(pai) delete pai; if(esquerdo) delete esquerdo; if(direito) delete direito; if(raiz) delete raiz; if(Nil) delete Nil; } // ------------- inserir; void arvore::inserir(arvore *z) { arvore *y = arvore::Nil; arvore *x = this->raiz; while(x!=arvore::Nil) { y = x; if(z->getChave() < x->getChave()) x = x->esquerdo; else x = x->direito; } z->pai = y; if(y==arvore::Nil) { // this->pai = arvore::Nil; this->raiz = z; } else if(z->getChave() < y->getChave()) y->esquerdo = z; else y->direito = z; z->esquerdo = arvore::Nil; z->direito = arvore::Nil; z->cor = "RED"; this->inserirFixa(z); } // fim do inserir; void arvore::inserirFixa(arvore *z) // inserir Fixa { arvore *y; while(z->pai->cor=="RED") { if(z->pai == z->pai->pai->esquerdo) { y = z->pai->pai->direito; if(y->cor == "RED") { z->pai->cor = "BLACK"; y->cor = "BLACK"; z->pai->pai->cor = "RED"; z = z->pai->pai; } else if(z==z->pai->direito) { z = z->pai; rotacaoEsquerda(z); } else { z->pai->cor = "BLACK"; z->pai->pai->cor = "RED"; rotacaoDireita(z->pai->pai); } } else { y = z->pai->pai->esquerdo; if(y->cor == "RED") { z->pai->cor = "BLACK"; y->cor = "BLACK"; z->pai->pai->cor = "RED"; z = z->pai->pai; } else if(z==z->pai->esquerdo) { z = z->pai; rotacaoDireita(z); } else { z->pai->cor = "BLACK"; z->pai->pai->cor = "RED"; rotacaoEsquerda(z->pai->pai); } } } raiz->cor="BLACK"; } // fim do inserir fixa; void arvore::rotacaoEsquerda(arvore *x) //rotação esquerda inicio; { arvore *y = x->direito; x->direito = y->esquerdo; if(y->esquerdo != arvore::Nil) y->esquerdo->pai = x; y->pai = x->pai; if(x->pai==arvore::Nil) // livro do Cormem; this->raiz = y; else if(x==x->pai->esquerdo) x->pai->esquerdo = y; else x->pai->direito = y; y->esquerdo = x; x->pai = y; } // rotação esquerda fim; void arvore::rotacaoDireita(arvore *y) // rotação direita inicio; { arvore *x = y->esquerdo; y->esquerdo = x->direito; if(x->direito != arvore::Nil) x->direito->pai = y; x->pai = y->pai; if(y->pai==arvore::Nil) this->raiz = x; // livro do cormem else if(y==y->pai->direito) y->pai->direito = x; else y->pai->esquerdo = x; x->direito = y; y->pai = x; } // rotação direita fim; void arvore::emOrdem(arvore *z) { if(z!=arvore::Nil) { emOrdem(z->esquerdo); // listar em ordem; cout<<" - "<<z->getChave()<<"("<<z->getCor()<<")"; emOrdem(z->direito); } } void arvore::preOrdem(arvore *z) { if(z!=arvore::Nil) { cout<<" - "<<z->getChave()<<"("<<z->getCor()<<")"; preOrdem(z->esquerdo); // listar pre ordem; preOrdem(z->direito); } } void arvore::posOrdem(arvore *z) { if(z!=arvore::Nil) { posOrdem(z->esquerdo); posOrdem(z->direito); //listar por ordem; cout<<" - "<<z->getChave()<<"("<<z->getCor()<<")"; } } arvore* arvore::minimo(arvore *z) // inicio do minimo; { while(z->esquerdo != arvore::Nil) z = z->esquerdo; return z; } arvore* arvore::maximo(arvore *z) // inicio do maximo; { while(z->direito != arvore::Nil) z = z->direito; return z; } arvore* arvore::buscar(arvore *z, int num) // inicio do buscar; { if(z==arvore::Nil || num == z->getChave()) return z; if(num < z->getChave()) buscar(z->esquerdo,num); else buscar(z->direito,num); } arvore* arvore::sucessor(arvore *x) // inicio do sucessor; { arvore *y = arvore::Nil; if(x->direito!= arvore::Nil) return minimo(x->direito); y = x->pai; while(y!=arvore::Nil && x==y->direito) { x = y; y = y->pai; } return y; } arvore* arvore::predecessor(arvore *x) // inicio do predecessor; { arvore *y = arvore::Nil; if(x->esquerdo!= arvore::Nil) return maximo(x->esquerdo); y = x->pai; while(y!=arvore::Nil && x==y->direito) { x = y; y = y->pai; } return y; } void arvore::transplante(arvore *u, arvore *v) // inicio do transplante; { if(u->pai == arvore::Nil) this->raiz = v; else if(u == u->pai->esquerdo) u->pai->esquerdo = v; else u->pai->direito = v; v->pai = u->pai; } arvore* arvore::remover(arvore *z) // inicio do remover comum; { arvore *x; arvore *y = z; string yCorOrg = y->cor; //y->cor = y->cor; if(z->esquerdo==arvore::Nil) { x = z->direito; transplante(z,z->direito); } else if(z->direito==arvore::Nil) { x = z->esquerdo; transplante(z,z->esquerdo); } else { y = minimo(z->direito); yCorOrg = y->cor; x = y->direito; if(x->pai == z) x->pai = y; else { transplante(y,y->direito); y->direito = z->direito; y->direito->pai = y; } transplante(z,y); y->esquerdo = z->esquerdo; y->esquerdo->pai = y; y->cor = z->cor; } if(yCorOrg=="BLACK") this->removerFixa(x); } // fim do remover comum; arvore* arvore::removerFixa(arvore *x) // inicio do remover fixa; { arvore *w; while(x != this->raiz && x->cor=="BLACK") // abertura do while; { if(x==x->pai->esquerdo) // if principal; { w = x->pai->direito; if(w->cor=="RED") { w->cor = "BLACK"; x->pai->cor = "RED"; rotacaoEsquerda(x->pai); w = x->pai->direito; } if(w->esquerdo->cor=="BLACK" && w->direito->cor=="BLACK") { w->cor = "RED"; x = x->pai; } else { if(w->direito->cor=="BLACK") { w->esquerdo->cor = "BLACK"; w->cor = "RED"; rotacaoDireita(w); w = x->pai->direito; } else { w->cor = x->pai->cor; x->pai->cor = "BLACK"; w->direito->cor = "BLACK"; rotacaoEsquerda(x->pai); x = this->raiz; } } } // fim do if principal; else // else principal; { w = x->pai->esquerdo; if(w->cor=="RED") { w->cor = "BLACK"; x->pai->cor = "RED"; rotacaoDireita(x->pai); w = x->pai->esquerdo; } if(w->direito->cor=="BLACK" && w->esquerdo->cor=="BLACK") { w->cor = "RED"; x = x->pai; } else { if (w->esquerdo->cor=="BLACK") { w->direito->cor = "BLACK"; w->cor = "RED"; rotacaoEsquerda(w); w = x->pai->esquerdo; } else { w->cor = x->pai->cor; x->pai->cor = "BLACK"; w->esquerdo->cor = "BLACK"; rotacaoDireita(x->pai); x = this->raiz; } } } // fim do else principal; } // encerramento do while; x->cor = "BLACK"; } // fim do remover fixa; Algoritmos Prontos/pilha/main.cpp #include <iostream> #include <string> #include "pilha.h" #include "ppessoa.h" using namespace std; int main () { ppessoa *p; pilha *pi = new pilha(); pilha *novaPilha; string nome; int escolha; do{ cout<<" Menu - teste da pilha"<<endl; cout<<" Digite 1 para Inserir elementos"<<endl; cout<<" Digite 2 para Remover elementos"<<endl; cout<<" Digite 3 para Exibir a pilha"<<endl; cout<<" Digite 4 para Sair do progrma"<<endl; cin>>escolha; cin.ignore(); switch (escolha) { case 1: p = new ppessoa(); cout<<"Digite o nome"<<endl; getline(cin,nome); p->setnome(nome); pi->PUSH(p); p=0; break; case 2: cout<<"Removido"<<endl; pi->POP(); break; case 3: novaPilha = new pilha(); while(pi->getTopo()!=0) { p = new ppessoa(); p = pi->POP(); cout<<" - "<<p->getnome()<<endl; novaPilha->PUSH(p); } while(novaPilha->getTopo()!=0) { pi->PUSH(novaPilha->POP()); } novaPilha = 0; delete novaPilha; p = 0; break; case 4: cout<<" Fim de Programa"<<endl; delete p; delete pi; return 0; break; default: cout<<"Opção inválida"<<endl; break; } }while (escolha != 4); return 0; } Algoritmos Prontos/fila/fila.cpp #include "fila.h" using namespace std; fila::fila() { inicio = 0; final = 0; } fila::~fila() { delete inicio; delete final; } void fila::setinicio(fpessoa *novo) { inicio = novo; } fpessoa* fila::getinicio() { return inicio; } void fila::setfinal(fpessoa *novo) { final = novo; } fpessoa* fila::getfinal() { return final; } void fila::ENQUEUE(fpessoa *novo) //insere no inicio; { if(inicio==0 && final==0) { inicio = novo; final = novo; } else { final->setproximo(novo); novo->setanterior(final); final = novo; } } fpessoa* fila::DEQUEUE() //retira do final; { if(inicio==0 && final==0) { return 0; } fpessoa *aux=inicio; if(inicio->getproximo()==0) { inicio = 0; final = 0; } else { inicio = inicio->getproximo(); inicio->setanterior(0); aux->setproximo(0); } return aux; } Algoritmos Prontos/listaNomes/listaNomes.pro.user.9349f66 ProjectExplorer.Project.ActiveTarget 0 ProjectExplorer.Project.EditorSettings true false true Cpp CppGlobal QmlJS QmlJSGlobal 2 UTF-8 false 4 false 80 true true 1 true false 0 true 0 8 true 1 true true true false ProjectExplorer.Project.PluginSettings ProjectExplorer.Project.Target.0 Desktop Desktop {d879a297-2788-42b3-8463-efd921e30ced} 0 0 0 /home/ricardo/build-listaNomes-Desktop-Debug true qmake QtProjectManager.QMakeBuildStep false true false true Make Qt4ProjectManager.MakeStep -w -r false 2 Build ProjectExplorer.BuildSteps.Build true Make Qt4ProjectManager.MakeStep -w -r true clean 1 Clean ProjectExplorer.BuildSteps.Clean 2 false Debug Qt4ProjectManager.Qt4BuildConfiguration 2 true /home/ricardo/build-listaNomes-Desktop-Release true qmake QtProjectManager.QMakeBuildStep false true false true Make Qt4ProjectManager.MakeStep -w -r false 2 Build ProjectExplorer.BuildSteps.Build true Make Qt4ProjectManager.MakeStep -w -r true clean 1 Clean ProjectExplorer.BuildSteps.Clean 2 false Release Qt4ProjectManager.Qt4BuildConfiguration 0 true 2 0 Deploy ProjectExplorer.BuildSteps.Deploy 1 Deploy locally ProjectExplorer.DefaultDeployConfiguration 1 false false false false true 0.01 10 true 1 25 1 true false true valgrind 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 2 listaNomes listaNomes2 Qt4ProjectManager.Qt4RunConfiguration:/home/ricardo/Área de Trabalho/Estruturas de Dados I - cmp 1054/N1/listaNomes/listaNomes.pro listaNomes.pro false true 3768 false true false false true 1 ProjectExplorer.Project.TargetCount 1 ProjectExplorer.Project.Updater.EnvironmentId {9349f66a-bdd4-47b3-bdfa-420ee3f2fae7} ProjectExplorer.Project.Updater.FileVersion 15 Algoritmos Prontos/ArvoreRedBlack2/ArvoreRedBlack2.pro.user ProjectExplorer.Project.ActiveTarget 0 ProjectExplorer.Project.EditorSettings true false true Cpp CppGlobal QmlJS QmlJSGlobal 2 UTF-8 false 4 false 80 true true 1 true false 0 true 0 8 true 1 true true true false ProjectExplorer.Project.PluginSettings ProjectExplorer.Project.Target.0 Desktop Desktop {528da7ad-a39b-4f4c-ab64-a2a815ce0b01} 0 0 0 /home/rick/build-ArvoreRedBlack2-Desktop-Debug true qmake QtProjectManager.QMakeBuildStep false true false true Make Qt4ProjectManager.MakeStep -w -r false 2 Build ProjectExplorer.BuildSteps.Build true Make Qt4ProjectManager.MakeStep -w -r true clean 1 Clean ProjectExplorer.BuildSteps.Clean 2 false Debug Qt4ProjectManager.Qt4BuildConfiguration 2 true /home/rick/build-ArvoreRedBlack2-Desktop-Release true qmake QtProjectManager.QMakeBuildStep false true false true Make Qt4ProjectManager.MakeStep -w -r false 2 Build ProjectExplorer.BuildSteps.Build true Make Qt4ProjectManager.MakeStep -w -r true clean 1 Clean ProjectExplorer.BuildSteps.Clean 2 false Release Qt4ProjectManager.Qt4BuildConfiguration 0 true 2 0 Deploy ProjectExplorer.BuildSteps.Deploy 1 Deploy locally ProjectExplorer.DefaultDeployConfiguration 1 false false false false true 0.01 10 true 1 25 1 true false true valgrind 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 2 ArvoreRedBlack2 Qt4ProjectManager.Qt4RunConfiguration:/home/rick/ArvoreRedBlack2/ArvoreRedBlack2.pro ArvoreRedBlack2.pro false true 3768 false true false false true 1 ProjectExplorer.Project.TargetCount 1 ProjectExplorer.Project.Updater.EnvironmentId {966055ba-b836-4a12-aafd-ade71c6837b1} ProjectExplorer.Project.Updater.FileVersion 15 Algoritmos Prontos/fila/fpessoa.h #ifndef FPESSOA_H #define FPESSOA_H #include <iostream> #include <string> using namespace std; class fpessoa { public: fpessoa(); ~fpessoa(); void setnome(string); void setproximo(fpessoa *); void setanterior(fpessoa *); string getnome(); fpessoa *getproximo(); fpessoa *getanterior(); private: string nome; fpessoa *proximo; fpessoa *anterior; }; #endif // FPESSOA_H Algoritmos Prontos/fila/fpessoa.cpp #include "fpessoa.h" fpessoa::fpessoa() { proximo = 0; anterior = 0; } fpessoa::~fpessoa() { delete proximo; delete anterior; } void fpessoa::setnome(string novo) { nome = novo; } void fpessoa::setproximo(fpessoa *novo) { proximo = novo; } void fpessoa::setanterior(fpessoa *novo) { anterior = novo; } string fpessoa::getnome() { return nome; } fpessoa* fpessoa::getproximo() { return proximo; } fpessoa* fpessoa::getanterior() { return anterior; } Algoritmos Prontos/listaNomes/pessoa.cpp #include "pessoa.h" using namespace std; pessoa::pessoa() { proximo = 0; } pessoa::~pessoa() { delete proximo; } void pessoa::setnome(string nm) { nome = nm; } void pessoa::setproximo(pessoa *n) { proximo = n; } string pessoa::getnome() { return nome; } pessoa* pessoa::getproximo() { return proximo; } Algoritmos Prontos/ArvoreRedBlack2/main.cpp /* Disciplina : Estrutura de Dados I - Árvore Binária Red Black; * Autor : Ricardo dos Santos; * Data: 02/12/2015; */ #include <iostream> #include "arvore.h" using namespace std; int main () { arvore *objArvore = new arvore; arvore *novo; int numero; int escolha; do { cout<<"MENU - Arvore Red Black"<<endl; cout<<"1 - Para Inserir"<<endl; cout<<"2 - Para Exibir"<<endl; cout<<"3 - Para Remover"<<endl; cout<<"4 - Para Buscar"<<endl; cout<<"5 - Sair"<<endl; cin>>escolha; switch (escolha) { case 1: novo = new arvore; cout<<"Digite valor "<<endl; cin>>numero; novo->setChave(numero); objArvore->inserir(novo); novo = 0; break; case 2: cout<<"Ordem"<<endl; objArvore->emOrdem(objArvore->getRaiz()); cout<<endl; cout<<"Pre Ordem"<<endl; objArvore->preOrdem(objArvore->getRaiz()); cout<<endl; cout<<"Pos Ordem"<<endl; objArvore->posOrdem(objArvore->getRaiz()); cout<<endl; break; case 3: cout<<"Digite valor para remover"<<endl; cin>>numero; novo = objArvore->buscar(objArvore->getRaiz(),numero); if(novo!=arvore::Nil) objArvore->remover(novo); else cout<<"elemento não encontrado"<<endl; break; case 4: cout<<"Digite elemento á ser buscado"<<endl; cin>>numero; novo = objArvore->buscar(objArvore->getRaiz(),numero); if(novo!=arvore::Nil) cout<<"< "<<novo->getChave()<<" >"<<endl; else cout<<"elemento não encontrado"<<endl; break; case 5: cout<<" Fim de programa"<<endl; if(objArvore) delete objArvore; if(novo) delete novo; objArvore = 0; novo = 0; break; default: cout<<"Numero inválido"<<endl; break; } }while(escolha!=5); return 0; } Algoritmos Prontos/pilha/pilha.h #ifndef PILHA_H #define PILHA_H #include "ppessoa.h" #include <string> using namespace std; class pilha { public: pilha(); ~pilha(); void setTopo(ppessoa *); ppessoa* getTopo(); void PUSH(ppessoa*); ppessoa* POP(); private: ppessoa *topo; }; #endif // PILHA_H Algoritmos Prontos/pilha/ppessoa.cpp #include "ppessoa.h" ppessoa::ppessoa() { pilha = 0; antePilha = 0; } ppessoa::~ppessoa() { delete pilha; delete antePilha; } void ppessoa::setnome(string novo) { nome = novo; } string ppessoa::getnome() { return nome; } void ppessoa::setpilha(ppessoa *novo) { pilha = novo; } ppessoa* ppessoa::getpilha() { return pilha; } void ppessoa::setantepilha(ppessoa *novo) { antePilha = novo; } ppessoa* ppessoa::getantepilha() { return antePilha; } Algoritmos Prontos/pilha/pilha.pro.user ProjectExplorer.Project.ActiveTarget 0 ProjectExplorer.Project.EditorSettings true false true Cpp CppGlobal QmlJS QmlJSGlobal 2 UTF-8 false 4 false 80 true true 1 true false 0 true 0 8 true 1 true true true false ProjectExplorer.Project.PluginSettings ProjectExplorer.Project.Target.0 Desktop Desktop {528da7ad-a39b-4f4c-ab64-a2a815ce0b01} 0 0 0 /home/rick/Documentos/ED - exemplos/Algoritmos/build-pilha-Desktop-Debug true qmake QtProjectManager.QMakeBuildStep false true false true Make Qt4ProjectManager.MakeStep -w -r false 2 Build ProjectExplorer.BuildSteps.Build true Make Qt4ProjectManager.MakeStep -w -r true clean 1 Clean ProjectExplorer.BuildSteps.Clean 2 false Debug Qt4ProjectManager.Qt4BuildConfiguration 2 true /home/rick/Documentos/ED - exemplos/Algoritmos/build-pilha-Desktop-Release true qmake QtProjectManager.QMakeBuildStep false true false true Make Qt4ProjectManager.MakeStep -w -r false 2 Build ProjectExplorer.BuildSteps.Build true Make Qt4ProjectManager.MakeStep -w -r true clean 1 Clean ProjectExplorer.BuildSteps.Clean 2 false Release Qt4ProjectManager.Qt4BuildConfiguration 0 true 2 0 Deploy ProjectExplorer.BuildSteps.Deploy 1 Deploy locally ProjectExplorer.DefaultDeployConfiguration 1 false false false false true 0.01 10 true 1 25 1 true false true valgrind 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 2 pilha Qt4ProjectManager.Qt4RunConfiguration:/home/rick/Documentos/ED - exemplos/Algoritmos/pilha/pilha.pro pilha.pro false true 3768 false true false false true 1 ProjectExplorer.Project.TargetCount 1 ProjectExplorer.Project.Updater.EnvironmentId {966055ba-b836-4a12-aafd-ade71c6837b1} ProjectExplorer.Project.Updater.FileVersion 15 Algoritmos Prontos/fila/fila.h #ifndef FILA_H #define FILA_H #include "fpessoa.h" #include <string> using namespace std; class fila { public: fila(); ~fila(); void setinicio(fpessoa *); fpessoa *getinicio(); void setfinal(fpessoa *); fpessoa *getfinal(); void ENQUEUE(fpessoa *); fpessoa* DEQUEUE(); private: fpessoa *inicio; fpessoa *final; }; #endif // FILA_H Algoritmos Prontos/pilha/pilha.pro.user.9349f66 ProjectExplorer.Project.ActiveTarget 0 ProjectExplorer.Project.EditorSettings true false true Cpp CppGlobal QmlJS QmlJSGlobal 2 UTF-8 false 4 false 80 true true 1 true false 0 true 0 8 true 1 true true true false ProjectExplorer.Project.PluginSettings ProjectExplorer.Project.Target.0 Desktop Desktop {d879a297-2788-42b3-8463-efd921e30ced} 0 0 0 /home/ricardo/build-pilha-Desktop-Debug true qmake QtProjectManager.QMakeBuildStep false true false true Make Qt4ProjectManager.MakeStep -w -r false 2 Build ProjectExplorer.BuildSteps.Build true Make Qt4ProjectManager.MakeStep -w -r true clean 1 Clean ProjectExplorer.BuildSteps.Clean 2 false Debug Qt4ProjectManager.Qt4BuildConfiguration 2 true /home/ricardo/build-pilha-Desktop-Release true qmake QtProjectManager.QMakeBuildStep false true false true Make Qt4ProjectManager.MakeStep -w -r false 2 Build ProjectExplorer.BuildSteps.Build true Make Qt4ProjectManager.MakeStep -w -r true clean 1 Clean ProjectExplorer.BuildSteps.Clean 2 false Release Qt4ProjectManager.Qt4BuildConfiguration 0 true 2 0 Deploy ProjectExplorer.BuildSteps.Deploy 1 Deploy locally ProjectExplorer.DefaultDeployConfiguration 1 false false false false true 0.01 10 true 1 25 1 true false true valgrind 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 2 pilha pilha2 Qt4ProjectManager.Qt4RunConfiguration:/home/ricardo/Área de Trabalho/Estruturas de Dados I - cmp 1054/N1/pilha/pilha.pro pilha.pro false true 3768 false true false false true 1 ProjectExplorer.Project.TargetCount 1 ProjectExplorer.Project.Updater.EnvironmentId {9349f66a-bdd4-47b3-bdfa-420ee3f2fae7} ProjectExplorer.Project.Updater.FileVersion 15 Algoritmos Prontos/listaNomes/lista.h #ifndef LISTA_H #define LISTA_H #include "pessoa.h" class lista { public: lista(); ~lista(); void setprimeiro(pessoa *); pessoa* getprimeiro(); void inserir(pessoa *); void inserirI(pessoa *); pessoa *retirar(); pessoa *retirarF(); pessoa excluirE(string); void exibir(); private: pessoa *primeiro; pessoa *ultimo; }; #endif // LISTA_H Algoritmos Prontos/pilha/ppessoa.h #ifndef PPESSOA_H #define PPESSOA_H #include <iostream> using namespace std; class ppessoa { public: ppessoa(); ~ppessoa(); void setnome(string); string getnome(); void setpilha(ppessoa *); ppessoa* getpilha(); void setantepilha(ppessoa *); ppessoa* getantepilha(); private: string nome; ppessoa *pilha; ppessoa *antePilha; }; #endif // PPESSOA_H Algoritmos Prontos/ArvoreTeste/arvore.cpp /* Disciplina : Estrutura de Dados I - Árvore Binária de Pesquisa; * Autor : Ricardo dos Santos; * Data: 19/11/2015; */ #include "arvore.h" Arvore::~Arvore() { if(pai) delete pai; if(filhoDireito) delete filhoDireito; if(filhoEsquerdo) delete filhoEsquerdo; if(raiz) delete raiz; } void Arvore::inserir(Arvore* novo) // inicio do inserir; { Arvore *y=NULL; Arvore *x = raiz; while(x!=NULL) { y = x; if(novo->chave < x->chave) x = x->filhoEsquerdo; else x = x->filhoDireito; } novo->setPai(y); if(y==NULL) { setRaiz(novo); } else if(novo->chave < y->chave) y->filhoEsquerdo = novo; else y->filhoDireito = novo; } // fim do inserir; void Arvore::emOrdem(Arvore* novo) // inicio em ordem; { if(novo != NULL) { emOrdem(novo->filhoEsquerdo); std::cout<<" - "<<novo->getChave(); emOrdem(novo->filhoDireito); } } // fim em ordem; void Arvore::preOrdem(Arvore* novo) // inicio pre ordem; { if(novo != NULL) { std::cout<<" - "<<novo->getChave(); preOrdem(novo->getFilhoEsquerdo()); preOrdem(novo->getFilhoDireito()); } } // fim do pre ordem; void Arvore::posOrdem(Arvore* novo) // inicio pos ordem; { if(novo != NULL) { posOrdem(novo->getFilhoEsquerdo()); posOrdem(novo->getFilhoDireito()); std::cout<<" - "<<novo->getChave(); } } // fim do pos ordem; Arvore* Arvore::minimo(Arvore *novo) // inicio do minimo; { while(novo->filhoEsquerdo!=NULL) novo = novo->filhoEsquerdo; return novo; } // fim do minimo; Arvore* Arvore::maximo(Arvore *novo) // inicio do maximo; { while(novo->filhoDireito!=NULL) novo = novo->filhoDireito; return novo; } // fim do maximo; Arvore* Arvore::buscar(Arvore *x,int numero) // inicio do buscar simples; { if(x==NULL || numero==x->chave) return x; if(numero < x->chave) buscar(x->getFilhoEsquerdo(),numero); else buscar(x->getFilhoDireito(),numero); } // fim do buscar simples; Arvore* Arvore::buscaIterativa(Arvore *x,int numero) // inicio do buscar interativa; { while(x!=NULL && numero!=x->chave) { if(numero < x->chave ) x = x->filhoEsquerdo; else x = x->filhoDireito; } return x; } // fim do buscar interativo; Arvore* Arvore::sucessor(Arvore* x) //inicio do sucessor; { Arvore *y = NULL; if(x->filhoDireito!=NULL) return minimo(x->filhoDireito); y = x->pai; while(y!=NULL && x==y->filhoDireito) { x = y; y = y->pai; } return y; } //fim do sucessor; Arvore* Arvore::predecessor(Arvore* x) //inicio do predecessor; { Arvore *y = NULL; if(x->filhoEsquerdo!=NULL) return maximo(x->filhoEsquerdo); y = x->pai; while(y!=NULL && x==y->filhoDireito) { x = y; y = y->pai; } return y; } //fim do predecessor; void Arvore::transplante(Arvore *u, Arvore *v) // inicio do transplante; { Arvore* aux = u->pai; if(aux == NULL) setRaiz(v); else if(u==aux->filhoEsquerdo) aux->setFilhoEsquerdo(v); else aux->setFilhoDireito(v); if(v != NULL) v->setPai(u->getPai()); } // fim do transplante; Arvore* Arvore::remover(Arvore* z) // inicio do remover; { Arvore *y=NULL; if(z->filhoEsquerdo==NULL) transplante(z,z->getFilhoDireito()); else if(z->filhoDireito==NULL) transplante(z,z->getFilhoEsquerdo()); else { y = minimo(z->getFilhoDireito()); if(y->getPai() != z) { transplante(y, y->getFilhoDireito()); y->setFilhoDireito(z->getFilhoDireito()); y->getFilhoDireito()->setPai(y); } transplante(z,y); y->setFilhoEsquerdo(z->getFilhoEsquerdo()); y->getFilhoEsquerdo()->setPai(y); } } // fim do remover; Algoritmos Prontos/listaNomes/listaNomes.pro.user ProjectExplorer.Project.ActiveTarget 0 ProjectExplorer.Project.EditorSettings true false true Cpp CppGlobal QmlJS QmlJSGlobal 2 UTF-8 false 4 false 80 true true 1 true false 0 true 0 8 true 1 true true true false ProjectExplorer.Project.PluginSettings ProjectExplorer.Project.Target.0 Desktop Desktop {528da7ad-a39b-4f4c-ab64-a2a815ce0b01} 0 0 0 /home/rick/Documentos/ED - exemplos/Algoritmos/build-listaNomes-Desktop-Debug true qmake QtProjectManager.QMakeBuildStep false true false true Make Qt4ProjectManager.MakeStep -w -r false 2 Build ProjectExplorer.BuildSteps.Build true Make Qt4ProjectManager.MakeStep -w -r true clean 1 Clean ProjectExplorer.BuildSteps.Clean 2 false Debug Qt4ProjectManager.Qt4BuildConfiguration 2 true /home/rick/Documentos/ED - exemplos/Algoritmos/build-listaNomes-Desktop-Release true qmake QtProjectManager.QMakeBuildStep false true false true Make Qt4ProjectManager.MakeStep -w -r false 2 Build ProjectExplorer.BuildSteps.Build true Make Qt4ProjectManager.MakeStep -w -r true clean 1 Clean ProjectExplorer.BuildSteps.Clean 2 false Release Qt4ProjectManager.Qt4BuildConfiguration 0 true 2 0 Deploy ProjectExplorer.BuildSteps.Deploy 1 Deploy locally ProjectExplorer.DefaultDeployConfiguration 1 false false false false true 0.01 10 true 1 25 1 true false true valgrind 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 2 listaNomes Qt4ProjectManager.Qt4RunConfiguration:/home/rick/Documentos/ED - exemplos/Algoritmos/listaNomes/listaNomes.pro listaNomes.pro false true 3768 false true false false true 1 ProjectExplorer.Project.TargetCount 1 ProjectExplorer.Project.Updater.EnvironmentId {966055ba-b836-4a12-aafd-ade71c6837b1} ProjectExplorer.Project.Updater.FileVersion 15 Algoritmos Prontos/ArvoreTeste/main.cpp /*Disciplina : Estrutura de Dados I - Árvore Binária de Pesquisa; * Autor : Ricardo dos Santos; * Data: 19/11/2015; */ #include <iostream> #include "arvore.h" using namespace std; int main () { Arvore *ObjetoArvore = new Arvore; Arvore *Novo; Arvore *aux; Arvore *aux1; int numero,opcao; do { cout<<"Menu - Arvore binária"<<endl; cout<<"1 - Digite para inserir "<<endl; cout<<"2 - Digite para exibir"<<endl; cout<<"3 - Digite para buscar elemento"<<endl; cout<<"4 - Digite para busca iterativa"<<endl; cout<<"5 - Digite para Sucessor e Antecessor"<<endl; cout<<"6 - Digite para Remover elemento"<<endl; cout<<"7 - Digite para Sair"<<endl; cin>>opcao; switch (opcao) { case 1: cout<<"Digite numero "<<endl; cin>>numero; Novo = new Arvore; Novo->setChave(numero); ObjetoArvore->inserir(Novo); break; case 2: cout<<"em Ordem"<<endl; ObjetoArvore->emOrdem(ObjetoArvore->getRaiz()); cout<<endl; cout<<"pre Ordem"<<endl; ObjetoArvore->preOrdem(ObjetoArvore->getRaiz()); cout<<endl; cout<<"pos Ordem"<<endl; ObjetoArvore->posOrdem(ObjetoArvore->getRaiz()); cout<<endl; break; case 3: cout<<"Digite elemento para buscar"<<endl; cin>>numero; if(!ObjetoArvore->buscar(ObjetoArvore->getRaiz(),numero)) cout<<" Numero inválido"<<endl; else { Novo = ObjetoArvore->buscar(ObjetoArvore->getRaiz(), numero); cout<<" - "<<Novo->getChave(); cout<<endl; } break; case 4: cout<<"Digite elemento para busca"<<endl; cin>>numero; if(!ObjetoArvore->buscaIterativa(ObjetoArvore->getRaiz(),numero)) cout<<" Numero inválido"<<endl; else { Novo = ObjetoArvore->buscaIterativa(ObjetoArvore->getRaiz(),numero); cout<<" - "<<Novo->getChave(); cout<<endl; } break; case 5: cout<<"Digite elemento para buscar proximo e anterior"<<endl; cin>>numero; cout<<" Sucessor "<<endl; aux = ObjetoArvore->buscar(ObjetoArvore->getRaiz(),numero); cout<<" - "<<ObjetoArvore->sucessor(aux)->getChave(); cout<<endl; cout<<" Predecessor"<<endl; cout<<" - "<<ObjetoArvore->predecessor(aux)->getChave(); cout<<endl; break; case 6: cout<<"Digite um elemento para remover"<<endl; cin>>numero; aux1 = ObjetoArvore->buscar(ObjetoArvore->getRaiz(),numero); ObjetoArvore->remover(aux1); break; case 7: if(ObjetoArvore) delete ObjetoArvore; if(Novo) delete Novo; cout<<"Fim de programa"<<endl; return 0; break; default: cout<<"Digite novamente"<<endl; break; } }while(opcao != 7); cout<<"Fim de Execução"<<endl; } Algoritmos Prontos/ArvoreRedBlack2/arvore.h /* Disciplina : Estrutura de Dados I - Árvore Binária Red Black; * Autor : Ricardo dos Santos; * Data: 02/12/2015; */ #ifndef ARVORE_H #define ARVORE_H #include <iostream> #include <string> using namespace std; class arvore { public: arvore(); ~arvore(); static arvore* Nil; void setPai(arvore *pai) {this->pai = pai;} void setEsquerdo(arvore *esquerdo) {this->esquerdo = esquerdo;} void setDireito(arvore *direito) {this->direito = direito;} void setRaiz(arvore *raiz) {this->raiz = raiz;} void serCor(string cor) {this->cor = cor;} void setChave(int chave) {this->chave = chave;} arvore* getPai() {return this->pai;} arvore* getEsquerdo() {return this->esquerdo;} arvore* getDireito() {return this->direito;} arvore* getRaiz() {return this->raiz;} string getCor() {return this->cor;} int getChave() {return this->chave;} void inserir(arvore*); //ok void inserirFixa(arvore*); //ok void rotacaoEsquerda(arvore*); //ok void rotacaoDireita(arvore*); //ok void emOrdem(arvore*); //ok void preOrdem(arvore*); //ok void posOrdem(arvore*); //ok arvore* buscar(arvore*,int); //ok arvore* minimo(arvore*); //ok arvore* maximo(arvore*); //ok arvore* sucessor(arvore*); //ok arvore* predecessor(arvore*); //ok arvore* remover(arvore*); //ok arvore* removerFixa(arvore*); //ok void transplante(arvore*,arvore*); //ok private: arvore *pai; arvore *esquerdo; arvore *direito; arvore *raiz; string cor; int chave; }; #endif // ARVORE_H Algoritmos Prontos/ArvoreRedBlack2/ArvoreRedBlack2.pro #------------------------------------------------- # # Project created by QtCreator 2015-11-28T11:18:37 # #------------------------------------------------- QT += core QT -= gui TARGET = ArvoreRedBlack2 CONFIG += console CONFIG -= app_bundle TEMPLATE = app SOURCES += main.cpp \ arvore.cpp HEADERS += \ arvore.h Algoritmos Prontos/pilha/pilha.pro #------------------------------------------------- # # Project created by QtCreator 2015-09-09T10:15:45 # #------------------------------------------------- QT += core QT -= gui TARGET = pilha CONFIG += console CONFIG -= app_bundle TEMPLATE = app SOURCES += main.cpp \ pilha.cpp \ ppessoa.cpp HEADERS += \ pilha.h \ ppessoa.h Algoritmos Prontos/listaNomes/lista.cpp #include "lista.h" // construtor; lista::lista() { primeiro = 0; } // destrutor; lista::~lista() { delete primeiro; } // setando primeiro; void lista::setprimeiro(pessoa *n) { primeiro = n; } // retornando o primeiro; pessoa* lista::getprimeiro() { return primeiro; } // insiro nome no fim da lista; void lista::inserir(pessoa *novo) { if(primeiro == 0) { primeiro = novo; //caso lista vazia, ja coloquo valor; } // caso não vazia, insiro no proximo espaço vazio; else { pessoa *pt = primeiro; for ( ; pt->getproximo()!=0; pt=pt->getproximo()); // faço busca de espaço vazio; pt->setproximo(novo); // coloquo novo valor; } } // insiro nome no inicio da lista; void lista::inserirI(pessoa *novo) { if(primeiro == 0) { primeiro = novo; //caso lista vazia, ja insiro valor; } else { novo->setproximo(getprimeiro()); //empurro a lista para frente; primeiro = novo; // insiro o valor; } } // retirando nomes do inicio da lista; pessoa* lista::retirar() { if(primeiro == 0) { return 0; //caso vazia, retorna nada; } // caso tenha valores, retiro do inicio; else { pessoa *p=primeiro; primeiro = primeiro->getproximo(); //aponto para a primeira posição; p->setproximo(0); // apago o nome; return p; // retorno espaço em branco; } } // retirar valores do final da lista; pessoa* lista::retirarF() { if(primeiro==0) { return 0; // caso vazio, retorno nada; } else { // caso apenas um nome, removo seu valor; if(getprimeiro()->getproximo()==0) //aponto para o próximo; { pessoa *q = getprimeiro(); setprimeiro(0); // deleto o primeiro elemento; return q; } // caso tenha mais nomes, aponto para o proximo do penultimo; else { pessoa *p=getprimeiro(); for( ;p->getproximo()->getproximo()!=0; p=p->getproximo()); //aqui busco a penultima posição; pessoa *q = p->getproximo(); //aqui guardo o nome para exibir; p->setproximo(0); // aqui removo o nome do ultimo; return q; } } } // retirando elemento especifico, por nome; pessoa lista::excluirE(string nm) { if(primeiro==0) // lista vazia; { std::cout<<"lista vazia"<<endl; } else { pessoa *ptr=primeiro; if(getprimeiro()->getproximo()==0)//primeiro elemento; { if(nm == ptr->getnome()) { cout<<"elemento <"<<nm<<"> removido"<<endl; setprimeiro(0); } else { cout<<"nome não consta na lista"<<endl; } } else // procurando na lista com mais nomes; { *ptr = *primeiro; // aponta pro primeiro; pessoa *pt; // auxiliar; while (ptr != 0 && ptr->getnome() != nm) // faço a busca; { pt = ptr; // pt fica como anterior recebendo proximo; ptr = ptr->getproximo(); // proximo recebe o proximo nome; } if (ptr == 0) { cout<<"nome não encontrado"<<endl; //falta corrigir; return *ptr; } // caso não encontre; if(ptr == primeiro) { primeiro = ptr->getproximo(); return *ptr; } if(ptr != 0 && ptr->getnome()==nm) { cout<<"elemento <"<<nm<<"> Removido"<<endl; pt->setproximo(ptr->getproximo()); // aqui proximo aponta para proximo elemento removido; ptr->setproximo(0); // removo o elemento desejado; return *ptr; // retorno a lista; } } } } // aqui faço exibir a lista; void lista::exibir() { if(primeiro == 0) { cout<<"a lista esta vazia "<<endl; //caso nada, retorno lista vazia; } // quando se tem valores, faço busca exibindo passo a passo; else { cout<<"\na lista é "<<endl; pessoa *ptr = primeiro; while (ptr!=0) { cout<<ptr->getnome()<<endl; ptr = ptr->getproximo(); } cout<<"\n"; } } Algoritmos Prontos/fila/fila.pro.user ProjectExplorer.Project.ActiveTarget 0 ProjectExplorer.Project.EditorSettings true false true Cpp CppGlobal QmlJS QmlJSGlobal 2 UTF-8 false 4 false 80 true true 1 true false 0 true 0 8 true 1 true true true false ProjectExplorer.Project.PluginSettings ProjectExplorer.Project.Target.0 Desktop Desktop {528da7ad-a39b-4f4c-ab64-a2a815ce0b01} 0 0 0 /home/rick/Documentos/ED - exemplos/Algoritmos/build-fila-Desktop-Debug true qmake QtProjectManager.QMakeBuildStep false true false true Make Qt4ProjectManager.MakeStep -w -r false 2 Build ProjectExplorer.BuildSteps.Build true Make Qt4ProjectManager.MakeStep -w -r true clean 1 Clean ProjectExplorer.BuildSteps.Clean 2 false Debug Qt4ProjectManager.Qt4BuildConfiguration 2 true /home/rick/Documentos/ED - exemplos/Algoritmos/build-fila-Desktop-Release true qmake QtProjectManager.QMakeBuildStep false true false true Make Qt4ProjectManager.MakeStep -w -r false 2 Build ProjectExplorer.BuildSteps.Build true Make Qt4ProjectManager.MakeStep -w -r true clean 1 Clean ProjectExplorer.BuildSteps.Clean 2 false Release Qt4ProjectManager.Qt4BuildConfiguration 0 true 2 0 Deploy ProjectExplorer.BuildSteps.Deploy 1 Deploy locally ProjectExplorer.DefaultDeployConfiguration 1 false false false false true 0.01 10 true 1 25 1 true false true valgrind 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 2 fila Qt4ProjectManager.Qt4RunConfiguration:/home/rick/Documentos/ED - exemplos/Algoritmos/fila/fila.pro fila.pro false true 3768 false true false false true 1 ProjectExplorer.Project.TargetCount 1 ProjectExplorer.Project.Updater.EnvironmentId {966055ba-b836-4a12-aafd-ade71c6837b1} ProjectExplorer.Project.Updater.FileVersion 15
Compartilhar