/** * Realiza a busca de um elemento na lista. * @param item * @return */ bool ListaEncadeada::busca(int item) { No * p; for(p=this->prim; p!=NULL; p=p->getProx()) { if (p->getInfo() == item) return true; } return false; }
Assento *ListaAssento::busca(int id){ No<Assento>* temp = getCabeca(); while(temp != NULL) { if(temp->getElemto()->getIdAssento() == id) return temp->getElemto(); temp = temp->getProx(); } throw "Assento nao encontrado"; }
/** * Insere um novo elemento na lista. * @param item */ void ListaEncadeada::insere(int item) { No* novo = new No(); novo->setInfo(item); novo->setProx(NULL); if(this->prim == NULL) { this->prim = novo; } else { // vai até o final da lista No* temp = this->prim; while(temp->getProx() != NULL) { temp = temp->getProx(); } // faz ultimo apontar para o novo nó temp->setProx(novo); novo->setAnt(temp); } }
/** * Realiza a busca de um valor na lista e retorna * o nó com este valor. * @param valor */ void ListaDescritor::busca(int valor) { No *noBusca = NULL; if(this->vazia()) { cout<<"Lista se encontra vazia."<<endl; exit(1); } else if(this->descritor->getAnt()->getInfo() == valor) { noBusca = this->descritor->getAnt(); //primeiro nó da lista } else if(this->descritor->getProx()->getInfo() == valor) { noBusca = this->descritor->getProx(); //ultimo nó da lista } else { No *l = this->descritor->getAnt(); // primeiro nó da lista while(l!= NULL && l->getInfo()!= valor) { l = l->getProx(); } noBusca = l; } //DSGRAPH DSGraph ds; //DSGRAPH if(noBusca != NULL) { //DSGRAPH showComment("Valor %d encontrado...", valor); ds.showCPP(this->descritor, 1, noBusca); //DSGRAPH } else { //DSGRAPH showComment("Valor %d nao encontrado...", valor); ds.showCPP(this->descritor); //DSGRAPH } }