Executando verificação de segurança...
3

Não sei se na sua faculdade permite usar new/delete e classes. Mas vou usar a minha de base. Normalmente fazemos assim:


template <typename T> 
class Node {
friend class stack;
private:
    Node* next;
    T value
public:
    Node(T new_value) {
        next = NULL;
        value = new_value; 
    }
}

template <typename T> 
class Stack {
    private:
        Node<T>* top;
    public: 
        Stack(){
            top = NULL; 
        }

         T pop() {
            if (topo == nullptr) {
                std::cout << "Pilha vazia!" << std::endl;
                return T(); 
            }

            Node<T>* temp = this->top;
            T aux = temp->value;
            top = top->next;
            delete temp;
            return aux;
        }
        
        void push(T new_value) {
            Node<T>* new_node = new Node<T>(new_value);
            new_node->next = this->top;
            this->top = new_node;
        }
}
Carregando publicação patrocinada...
2

A cadeira de Estrutura de Dados vem antes da cadeira de Orientação a Objetos aonde eu estudo, infelizmente nada de usar classe ou bibliotecas que o professor mencionou em aula.

Muito obrigado pela ajuda, o código será de grande auxílio para continuar estudando esse conteúdo.