Нет, вывод правильный.
a.push(5);
a.display();
Отображает первые 5
.
a.push(10);
a.display();
5
все еще находится в стеке, поэтому теперь отображается10
и затем 5
.
a.pop();
a.pop();
a.push(20);
a.display();
Теперь все удалено, добавлено 20
и отображается, так что это должно просто отобразить 20
.
И тогда пустая пачка печатается с
a.pop();
a.display();
Итак, вместе она должна отображать 5 10 5 20 Stack is Empty
.