转置堆栈中的项目

时间:2015-11-14 18:23:12

标签: java stack

我希望只使用堆栈来移动堆栈。例如:

原始堆栈:[A,A,3,3,B,B,6,6,C,C] 转置堆栈:[B,6,6,C,C,A,A,3,3,B]

由于Java Collections Framework与Stack类中的此方法没有任何相似之处,因此实现此目的的方法是什么?

2 个答案:

答案 0 :(得分:2)

使用 Collections.rotate

List<String> stack = new Stack<>();
stack.addAll(Arrays.asList("A", "A", "3", "3", "B", "B", "6", "6", "C", "C"));
Collections.rotate(stack, 5);
System.out.println(stack);

答案 1 :(得分:0)

这是伪代码,我希望你可以转换为Java没问题!

  1. 制作临时堆栈

  2. 将部分项目从原始文件移至临时文件

  3. (所以你原来可能有A,A,3,3,B和临时C,C,6,6,B)。

    1. 现在制作一个结果堆栈

    2. 将B,6,6,C,C放在temp

    3. 的结果堆栈中
    4. 然后将B,3,3,A,A放入temp

    5. 然后将A,A,3,3,B放入结果
    6. 要做这些动作,你会反复做这样的事情: Temp.push(Original.pop())。