Как проверить, пустой ли стек? Доброго времени суток.
Делаю стек с 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 ?

21 Авг 2019 в 07:05
209 +2
0
Ответы
1

Для проверки, пустой ли стек, можно сравнивать указатель top на nullptr вместо сравнения значения ключа элемента стека на NULL.

В методе isEmpty() замените условие на следующее:

bool isEmpty()
{
if (top == nullptr)
return true;
return false;
}

Таким образом, если указатель top равен nullptr, это будет означать, что стек пуст.

20 Апр в 13:07
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Название заказа не должно быть пустым
Введите email
Бесплатные доработки
Гарантированные бесплатные доработки
Быстрое выполнение
Быстрое выполнение от 2 часов
Проверка работы
Проверка работы на плагиат
Интересные статьи из справочника
Поможем написать учебную работу
Название заказа не должно быть пустым
Введите email
Доверьте свою работу экспертам
Разместите заказ
Наша система отправит ваш заказ на оценку 84 093 авторам
Первые отклики появятся уже в течение 10 минут
Прямой эфир