快捷搜索:  xxx  as  推理研究所  幼幼  侦探研究所

澳门威尼人斯人最新网站:就地移动栈数据



题目:将客栈S1中的元素移至客栈S2,元素顺序不能改变.只能应用一些非数组变量作为帮助空间.

1.用Java实现,首先应用链表LinkedList构造栈数据布局.

import java.util.Linked澳门威尼人斯人最新网站List;

public class CharStack {

private LinkedList storage = new LinkedList();

/** 入栈 */

public void push(char v) {

storage.addFirst(v);

}

/** 出栈,但不删除 */

public char peek() {

return storage.getFirst();

}

/** 出栈 */

public char pop() {

return storage.removeFirst();

}

/**澳门威尼人斯人最新网站 栈是否为空 */

public boolean empty() {

return storage.isEmpty();

}

/** 打印栈元素 */

public String toString() {

return澳门威尼人斯人最新网站 storage.toString();澳门威尼人斯人最新网站

}

}

2.移动算法

措施move()是移动的算法实现,详细算法为:

1.从栈from中pop一个元素,存于变量achar;

2.将栈to中的所有元素压入栈from;

3.将achar压入栈to;

4.将先前压入栈from的所有元素压入栈to;

5.重复[1-4],直到栈from空;

6.应用整型变量turn区分在栈from中本身自己的元素和来自于栈to的元素;

7.测试,履行代码结果:

Source:[E, D, C, B, A]

MoveTo:[E, D, C, B, A]

public class StackMove {

private CharStack from;

private CharStack to;

public StackMove(CharStack f澳门威尼人斯人最新网站rom, CharStack to) {

this.from = from;

this.to = to;

}

public void move() {

int turn = 0;

while (!from.empty()) {

char achar = from.pop();

for (int i = 0; i

本文出自 “子 孑” 博客,请务必保留此出处http://zhangjunhd.blog.51cto.com/113473/55162

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

您可能还会对下面的文章感兴趣: