В вашем коде две вещи неправильные.
Во-первых, метод Display
отображает весь массив.За исключением того, что, поскольку вы физически не удаляете элементы из массива, вам нужно остановиться на индексе top
:
public void Display()
{
if (IsEmpty())
{
Console.WriteLine("Empty");
return;
}
for (int i = 0; i <= top; i++)
{
Console.WriteLine(dataStack[i]);
}
}
Вторая проблема - ваша Add
.Из того, что я понимаю, вы хотите получить последние два элемента, суммировать их и выдвинуть результат.В вашей реализации вы фактически суммируете первые два элемента (а не последние два).Лучшая версия была бы:
public void Add()
{
int add1 = Pop();
int add2 = Pop();
int sum = add1 + add2;
Console.WriteLine("Sum: {0}", sum);
Push(sum);
}
Обратите внимание, что у меня нет прямого доступа к dataStack
.Если ваш API правильно реализован, он не нужен.