Привет, я не уверен, что мой код неверен. Я искал что-нибудь.
вот вопрос:
Напишите общий класс с именем Stack в Java или C++ для типа стека, который использует связанный список для хранения элементов. Класс Stack имеет переменную-член, названную head, которая ссылается на первый узел списка, и переменную-член с именем size, которая хранит количество элементов в стеке. Класс Stack предоставляет все методы класса стека STL, включая push, pop, top и empty.
они дают класс узлов
template <typename T>
class Node {
public:
T nodeValue;
Node<T> *next;
Node (const T& item, Node<T> *ptr = NULL):
nodeValue(item), next(ptr)
{}
};
Теперь это класс Stack, который я написал:
template <typename T>
class Stack:public std::stack<Node>
{
public:
Node<T> *head;
T size;
Stack(const T& capacity, Node<T> *ptr):size(capacity),head(ptr){};
};
когда я запускаю его, я получаю следующее:
error: type/value mismatch at argument 1 in template parameter list for ‘template<class _Tp, class _Sequence> class std::stack
По крайней мере, вы должны создать экземпляр Node
, когда вы используете его с std::stack
:
template <typename T>
class Stack : public std::stack<Node<T> >
// ^^^
{
];
std::stack
.