Ir ao conteúdo

Posts recomendados

Postado

Alguem me ajude!!!

Fiz uma funcao desimpilhar nao sei onde esta o erro, exemplo:

Dada a pilha 654321

Era para desimpilhar tudo ...

só que esta desimpilhando só o primeiro e o final da pilha esta sem o NULL...

 

int desempilhar(p_no p)
        {
            int c;
            p_no topo;
            topo=p;
                if(topo!=NULL)
                {c=topo->dado;
                p=p->prox;
                 free(topo);
            return c;}
                      exit(1);
                }

}

Postado

Desempilhar é remover apenas o último elemento, o algoritmo fica assim: 

int desempilha(PILHA &pilha){
     if (pilha.nElem == 0)
           cout<<"\nPILHA VAZIA.";

    int ch = pilha.a[pilha.nElem -1].chave;
    pilha.nElem--;
    cout<<"\nElemento "<<ch<<" removido com sucesso.";
}

Agora se tu quer remover tudo é muito simples:

void esvaziar(PILHA &pilha){
        pilha.nElem = 0;
        cout<<"\nPilha vazia";
}

 

Postado

Olá@giovany93 

―Veja que o seu maior problema é fazer apenas uma vez.

Se é para livrar a pilha de todos os itens, então use WHILE, Ou FOR na estrutura da função. Onde há um IF!

 

Imagem Ilustrativa (sujeita e remoção)

image.png.0bc8a2fc795131a6f66c4bdf1b63beba.png

 

Código Ilustrativo (sujeito a remoção)

@AnsiC/Pilhas

 

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!