Buscar

A seguir é apresentado o código da função "clonar(p)", capaz de criar e retornar uma nova pilha idêntica a uma pilha "p" já existente.   struct Pil...

A seguir é apresentado o código da função "clonar(p)", capaz de criar e retornar uma nova pilha idêntica a uma pilha "p" já existente.

 

struct Pilha* clonar(struct Pilha* p) {

assert(p != NULL);

struct Pilha* clone = criar();

struct Pilha* aux = criar();

 

while(vazia(p) == false) {

empilhar(aux, desempilhar(p));

}

 

while(vazia(aux) == false) {

int elemento =____________;

____________;

empilhar(p, elemento);

}

 

____________

return clone;

}

Assinale a alternativa que preenche corretamente as lacuna do código da função "clonar":

Selecione uma alternativa:

a)

topo(aux) / empilhar(clone, elemento) / liberar(aux).

b)

desempilhar(aux) / empilhar(clone, elemento) / free(aux).

c)

desempilhar(aux) / empilhar(clone, elemento) / liberar(aux).

d)

desempilhar(aux) / empilhar(clone, desempilhar(aux)) / liberar(aux).

e)

topo(aux) / empilhar(clone, desempilhar(aux)) / free(aux).


💡 1 Resposta

User badge image

Ed Verified user icon

A alternativa correta é a letra c) desempilhar(aux) / empilhar(clone, elemento) / liberar(aux). Explicação: O código da função "clonar(p)" cria uma nova pilha "clone" e uma pilha auxiliar "aux". Em seguida, ele desempilha todos os elementos da pilha "p" e empilha na pilha "aux". Depois, ele desempilha todos os elementos da pilha "aux" e empilha na pilha "p" novamente, enquanto empilha os mesmos elementos na pilha "clone". Por fim, ele libera a pilha "aux" e retorna a pilha "clone". Na linha "int elemento =____________;", o elemento desempilhado da pilha "aux" deve ser armazenado na variável "elemento". Na linha "empilhar(clone, elemento);", o elemento deve ser empilhado na pilha "clone". E na linha "liberar(aux);", a pilha "aux" deve ser liberada da memória.

0
Dislike0

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

✏️ Responder

SetasNegritoItálicoSublinhadoTachadoCitaçãoCódigoLista numeradaLista com marcadoresSubscritoSobrescritoDiminuir recuoAumentar recuoCor da fonteCor de fundoAlinhamentoLimparInserir linkImagemFórmula

Para escrever sua resposta aqui, entre ou crie uma conta

User badge image

Outros materiais