Você está aqui: C++ ::: Desafios e Lista de Exercícios Resolvidos ::: Estruturas de Dados - Pilhas |
Escreva um programa C++ para criar uma Pilha usando uma Lista Ligada (Lista Encadeada Simples), com as operações de empilhar(), desempilhar() e exibir_nos() - Desafio de Programação Resolvido em C++Quantidade de visualizações: 541 vezes |
Pergunta/Tarefa: Escreva um programa C++ para criar uma Pilha usando uma Lista Ligada (Lista Encadeada Simples), com as operações de empilhar(), desempilhar() e exibir_nos(). Seu programa deverá usar programação orientada a objetos, ou seja, uma classe No para representar os nós individuais da pilha e uma classe Pilha para o gerenciamento dos nós. Sua saída deverá ser parecida com: Elementos na pilha: 3 8 11 O elemento removido foi: 3 Elementos na pilha: 8 11 Veja a resolução comentada deste exercício em C++: #include <iostream> using namespace std; // definição da classe No, que representa os nós da // lista ligada class No { public: int valor; // valor do nó No* proximo; // próximo elemento da lista ligada }; // definição da classe Pilha e suas operações class Pilha { private: No* topo; // aponta para o topo da pilha public: // construtor da classe Pilha Pilha() { // ajusta o topo para NULL; pilha vazia topo = NULL; } // função para empilhar um novo elemento na pilha void empilhar(int valor) { // vamos criar um novo nó No* novo_no = new No(); // ajustamos o valor do novo nó novo_no->valor = valor; // o próximo do novo nó aponta para quem está no topo novo_no->proximo = topo; // e a variável topo aponta para o novo nó topo = novo_no; } // função para desempilhar um nó da pilha No* desempilhar() { // a pilha está vazia? if (topo == NULL) { cout << "\nPilha vazia\n" << endl; return NULL; } // criamos um nó temporário e o apontamos para o // topo da pilha No* temp = topo; // agora o topo aponta para o seu próximo topo = topo->proximo; // criamos o nó a ser devolvido pela função No* removido = new No(); removido->valor = temp->valor; // e deletamos o nó apontado pelo temporário delete temp; // e retornamos o nó removido return removido; } // função usada para exibir os nós da pilha void exibir_nos() { // a pilha está vazia? if (topo == NULL) { cout << "\nPilha vazia\n" << endl; return; } // nó temporário que aponta para o topo da pilha No* temp = topo; cout << "Elementos na pilha: "; |
![]() |
Mais Desafios de Programação e Exercícios e Algoritmos Resolvidos de C++ |
Veja mais Dicas e truques de C++ |
Dicas e truques de outras linguagens |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
1º lugar: Java |