В методе stack_pop
вы пытаетесь привязать значение к пустому массиву:
final int [] pop_array = null;
...
pop_array[k++] = pop_elem;
Вы должны инициализировать его количеством элементов, содержащихся в вашем стеке.
В этом методе есть и другие проблемы, например:
for (int i = 1; i < n; i++)
, где n
вначале имеет значение 0 и никогда не изменяется.
И почему вы звоните два раза stack_pop(st)
?Второй вызов всегда будет сделан с пустым стеком.Если это должно было проверить, перехвачено ли исключение, строка
System.out.println("stack: " + pop_array[0]);
вызывает сбой вашей программы, когда вы пытаетесь получить доступ к pop_array[0]
, тогда как вы инициализировали массив с размером стека, равным 0.