Доброго времени суток.
Делаю стек с Linked Lists и классами на C++, допустим есть класс элемента стека и класс самого стека. В самом начале создаем 1 элемент стека "top" (он же пока что и является верхним) при помощи конструктора с полями key = NULL, deeperElement = NULL;
И теперь я хочу в стеке сделать метод isEmpty, но сравнивать NULL и числовой тип глупо.
Наверное, лучше скинуть код:
class stackElement
{
private:
int key;
stackElement *deeper;
public:
stackElement()
{
key = NULL;
deeper = NULL;
}
void setDeeper(stackElement *d)
{
deeper = d;
}
stackElement* getDeeper() const
{
return deeper;
}
void setValue(int value)
{
key = value;
}
int getValue() const
{
return key;
}
};
class secondStack
{
private:
stackElement *top;
public:
void Push(int n)
{
stackElement *temp = new stackElement;
temp->setValue(n);
temp->setDeeper(top);
top = temp;
}
int Pop()
{
int deletedInteger = top->getValue();
stackElement *temp = top;
top = top->getDeeper();
delete temp;
return deletedInteger;
}
bool isEmpty()
{
// дураку ясно, что если верхнему элементу стэка присвоить значение 0, то работать это не будет
if (top->getValue() == NULL)
return true;
return false;
}
};
Собственно как сделать эту проверку? Может какую другую константу вместо NULL ?