黑马程序员技术交流社区
标题: 使用栈将一个字符数组反向输出 [打印本页]
作者: 党传才 时间: 2012-4-12 12:53
标题: 使用栈将一个字符数组反向输出
字符数组ch
for(int i = 0; i < 10; i++){
push(ch);
}
for(int i = 0; i < 10; i++){
System.out.print(pop(ch));
}
这样行么
作者: 未长法 时间: 2012-4-12 13:00
字符数组ch
for(int i = 0; i < 10; i++){
push(ch[i]);
}
for(int i = 0; i < 10; i++){
System.out.print(pop(ch[i]));
}
作者: 袁计艳 时间: 2012-4-12 13:49
给你一个完整的吧:
import java.util.Stack;
public class Test2 {
static char[] ch = {'a','b','c','d','e'};
public static void main(String[] args) {
Stack stack = new Stack();
for(int i=0;i<ch.length;i++){
//push(ch[i]);
stack.push(ch[i]);
}
for(int i=0;i<ch.length;i++){
System.out.print(stack.pop());
}
}
}
作者: 党传才 时间: 2012-4-12 14:40
thank you
作者: 姜志钦 时间: 2012-4-12 16:22
我来解释一下楼上写的代码:
import java.util.Stack;
public class Test2 {
static char[] ch = {'a','b','c','d','e'};
public static void main(String[] args) {
Stack stack = new Stack();//创建一个堆栈对象
for(int i=0;i<ch.length;i++){
//push(ch[i]);
stack.push(ch[i]);//push()方法把项推到堆栈顶部,即第一次循环a被推向堆栈顶部,第二次b被推向顶部,依次类推,最后e在堆栈顶部,a
在堆栈底部 }
for(int i=0;i<ch.length;i++){
System.out.print(stack.pop());//pop()方法去除堆栈顶部的对象,并返回该对象的值;类似方法还有peek(),但这个方法不会移除堆栈顶部对象,如果用这个方法不论循环多少次取到的值还是顶部的e;所以这边采用pop()方法,在取顶部的e的时候并去除它,那取完e后堆栈的顶部就变成了d,再次调用pop()取值并去除,以此循环到取a,结果输出edcba。但是数组存储的顺序并没有改变,即每一项对应的下标值并没有变,数组还是abcde
}
}
}
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) |
黑马程序员IT技术论坛 X3.2 |