Carregando...
Carregando...
Ajude a melhorar a plataforma
A implementação de uma pilha utilizando uma lista encadeada que requer a criação de uma estrutura de nó onde é informado os próximos elementos da pilha e funções para realizar operações de inserção (push) um novo elemento na pilha e remoção (pop) de um elemento da pilha já existente.
Complete o código em C++ para implementar as operações básicas (push e pop) de uma pilha utilizando uma lista encadeada. Preencha os espaços em branco indicados por /* ... */ para que o código funcione corretamente.
#include <iostream>
// Estrutura do nó
struct Node {
int data;
Node* next;
};
// Classe Pilha com Lista Encadeada
class Stack {
private:
Node* top;
public:
Stack() {
top = nullptr;
}
void push(int value) {
Node* newNode = new Node();
newNode->data = value;
newNode->next = /* ... */;
top = newNode;
}
void pop() {
if (top == nullptr) {
std::cout << "Stack Underflow" << std::endl;
return;
}
Node* temp = top;
top = /* ... */;
delete temp;
}
}
O preenchimento correto se afirma em:
Explique melhor esta questão
Abre o Tutor com o enunciado e as alternativas já no campo — você revisa e envia.
Esta questão foi verificada por um de nossos administradores.
Alternativa D - newNode->next = top; e top = top->next;
A pilha é uma estrutura de dados LIFO (Last In, First Out), onde o último elemento inserido é o primeiro a ser removido. Em uma lista encadeada, as operações ocorrem sempre no topo para garantir eficiência.
newNode->next = top). Em seguida, a variável que controla o topo da pilha é atualizada para apontar para este novo nó (top = newNode).top = top->next), permitindo que a memória do nó removido seja liberada.Analisando o código fornecido:
push, após criar o nó, o próximo (next) do novo nó deve ser o antigo topo: newNode->next = top.pop, após salvar o topo atual em um ponteiro temporário, o novo topo deve ser o elemento seguinte: top = top->next.As outras alternativas falham por:
pop, top = newNode->next está incorreto pois newNode nem existe no escopo de pop.nullptr no push quebraria o encadeamento com os elementos anteriores.A lógica correta de encadeamento para pilhas exige que o novo nó aponte para o antigo topo e que a remoção desloque o topo para o nó subsequente.
Alternativa D.