/** * 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; }
/** * 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 } }
/** * Operação de desenfileiramento (dequeue) * @return valor desenfilerado */ int Fila::desenfileira() { No *f; int valor; if(this->vazia()) { //DSGRAPH showComment("Fila esta vazia."); //DSGRAPH exit(1); } f = this->inicio; valor = f->getInfo(); this->inicio = this->inicio->getProx(); delete f; if(this->vazia()) this->fim = NULL; return valor; }