请大家解决 编写一个用数组实现堆栈原理的程序,并把welcome institute nan jing to engineering 6个单词以一定的顺序放入堆栈中,并按照welcome to nan jing engineering institute顺序输出。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 class StackEmptyException extends RuntimeException{ private static final long serialVersionUID = 1L; public StackEmptyException(String msg){ super(msg); }}public class Stack { private int size; private int capacity; private Object elements[]; public Stack(int capacity){ this.size = 0; this.capacity = capacity; this.elements = new Object[capacity]; } public void push(Object e){ ensureCapacity(); elements[size++] = e; } public Object pop(){ if(size == 0){ throw new StackEmptyException("stack empty!"); } /****************************************/ //memory leak! //return elements[--size]; /****************************************/ Object retuslt = elements[--size]; elements[size] = null; return retuslt; } public int size(){ return size; } public String toString(){ StringBuilder sb = new StringBuilder(); sb.append("["); for(int i=0;i<elements.length;i++){ if(elements[i] == null)sb.append("[]"); else sb.append(elements[i].toString()); if(i<elements.length-1)sb.append(","); } sb.append("]"); return sb.toString(); } private void ensureCapacity(){ if(size >= capacity){//stack full System.out.println("stack full"); Object oldElements = elements; elements = new Object[2*capacity]; capacity = 2*capacity; //System.arrayCopy是复制引用,也就是浅拷贝 System.arraycopy(oldElements, 0, elements, 0, size); } } public static void main(String[] args) { Stack stack = new Stack(2); stack.push("hello"); stack.push("world"); System.out.println(stack.size()); System.out.println(stack); stack.push("yes"); stack.push("no"); stack.push("full"); System.out.println(stack.size()); System.out.println(stack); }} 排序的一个疑惑! 忘高手来帮忙解析! 一个关于Match.find的问题 怎么样使Eclipse出现提示 java 数组值比较大小并分类 关于排序帖子的疑问 如何将html代码设为变量 Eclipse每次编译都编译整个workSpace,郁闷? 问一个jsp中矢量数组类型Vector的问题 socket阻塞问题 serversocket.accept().getOutputStream() 服务器最多能够维持多少个OutputStream? 谁能给我解释一下这个代码的意思~~ 关于递归算法的!! 关于SimpleDateFormat日期格式和操作系统的setting(急)
class StackEmptyException extends RuntimeException{
private static final long serialVersionUID = 1L;
public StackEmptyException(String msg){
super(msg);
}
}
public class Stack {
private int size;
private int capacity;
private Object elements[];
public Stack(int capacity){
this.size = 0;
this.capacity = capacity;
this.elements = new Object[capacity];
}
public void push(Object e){
ensureCapacity();
elements[size++] = e;
}
public Object pop(){
if(size == 0){
throw new StackEmptyException("stack empty!");
}
/****************************************/
//memory leak!
//return elements[--size];
/****************************************/
Object retuslt = elements[--size];
elements[size] = null;
return retuslt;
}
public int size(){
return size;
}
public String toString(){
StringBuilder sb = new StringBuilder();
sb.append("[");
for(int i=0;i<elements.length;i++){
if(elements[i] == null)sb.append("[]");
else sb.append(elements[i].toString());
if(i<elements.length-1)sb.append(",");
}
sb.append("]");
return sb.toString();
}
private void ensureCapacity(){
if(size >= capacity){//stack full
System.out.println("stack full");
Object oldElements = elements;
elements = new Object[2*capacity];
capacity = 2*capacity;
//System.arrayCopy是复制引用,也就是浅拷贝
System.arraycopy(oldElements, 0, elements, 0, size);
}
}
public static void main(String[] args) {
Stack stack = new Stack(2);
stack.push("hello");
stack.push("world");
System.out.println(stack.size());
System.out.println(stack);
stack.push("yes");
stack.push("no");
stack.push("full");
System.out.println(stack.size());
System.out.println(stack);
}
}