Последовательности в стеке LIFO

Я учусь на среднесрочную перспективу, и мне нужна помощь с этим вопросом:

Предположим, что смешанная последовательность операций push и pop выполняется в стеке LIFO. Нажимы нажимают числа от 0 до 9 по порядку; всплывающие окна выводят возвращаемое значение. Какая из следующих выходных последовательностей может иметь место? Выберите все, что возможно.

1 2 5 4 3 6 0 9 8 7

6 5 4 3 2 1 0 7 8 9

4 6 8 7 5 3 2 9 0 1

0 1 5 6 4 3 7 9 2 8

0 2 4 1 6 7 5 9 8 3

Я считаю, что ответ:

6 5 4 3 2 1 0 7 8 9

Я прав? Заранее спасибо!

1 ответ

Решение

Первый вариант возможен, а последовательность:

push(0);
push(1);
pop();
push(2);
pop();
push(3);
push(4);
push(5);
pop();
pop();
pop();
push(6);
pop();
pop();
push(7);
push(8);
push(9);
pop();
pop();
pop();

Второй также возможен с последовательностью:

push(0);
push(1);
push(2);
push(3);
push(4);
push(5);
push(6);
pop();
pop();
pop();
pop();
pop();
pop();
pop();
push(7);
pop();
push(8);
pop();
push(9);
pop();

Третий не представляется возможным, потому что после печати 9 стек будет содержать 0 1 а также pop() дам тебе 1 не 0,

Также четвертый также не возможно, потому что после печати 9 стек будет иметь 2 8 а ты не можешь pop()2 до 8,

Пятый также невозможен, так как после печати 4 стека будут содержать 1 3 а также 3 будет выскочил первым.

Другие вопросы по тегам