Ваши интерфейсы выглядят немного не так. Давай начнем с этого и посмотрим, не приведет ли это к твоему горбу.
stack.top()
обычно заглядывает в предмет, но не удаляет его. Это не кажется полезным для переноса из одного стека в пыльник. У вас уже есть isEmptyStack (), чтобы проверить, что верхний элемент существует.
stack.pop()
обычно берет верхний предмет из стека. Это звучит полезно для передачи.
stack.push(item)
помещает предмет на вершину стека. Это звучит полезно для передачи.
stack.push()
просто кажется неправильным. Нажмите что?
Надеемся, что после того, как вы реализуете эти методы, все остальное станет понятным из предоставленного вами описания проблемы на английском языке.
Обновление: это то, что вы хотите:
|a | | | | | | | | | |c |
|b | | |b | | | |b | | |b |
|c | | |c |a | |c |a | | |a |
1 tmp 2 1 tmp 2 1 tmp 2 1 tmp 2
| | | | | | | | |a
| |b | | | |b | | |b
| |a |c | |a |c | | |c
1 tmp 2 1 tmp 2 1 tmp 2
Теперь, с помощью всего лишь push, pop и IsEmptyStack, без назначения стеков друг другу (что-то вроде поражения цели назначения), вы можете сделать это?