C# Реализация методов работы со стеком на основе массива, в чем ошибка?
Используйте готовый Stack
Прочитайте книгу 1-2.
бегло посмотрел:...
else  if (head % 2 != 0) //не нужен, достаточно else { .. }
...
public int Pop()//извлечение
        {
           
            return (stack[head]);
           // head--; -< надо снять коммент
        }
Делал не так давно задание по стеку на массиве, получилось более менее прилично вроде (можно без особых проблем реализацию IEnumerable прикрутить). Код. По заданию требовалось сделать это дело на VB.Net, хоть и писал на С#, исходников не сохранилось, но особой разницы и нет.
Еще рекомендую заглянуть на MS/Mono реализацию стека, там по сути тоже самое, но более навороченное.