예제 #1
0
파일: lista.cpp 프로젝트: ufjf-dcc/dsgraph
/**
 * 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;
}
예제 #2
0
/**
* 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
    }
}
예제 #3
0
파일: fila.cpp 프로젝트: ufjf-dcc/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;
}