用java代码编写堆栈?

用java代码编写堆栈?,第1张

参看: http://java.sun.com/javase/6/docs/api/java/util/Stack.html 1 import java.util.*2 3 public class TestStack { 4 public static void main(String[] args) { 5 Stack stack = new Stack()6 7 for(int i = 0i <10i++) { 8 stack.push(new Integer(i))9 }1011 if(!stack.empty()) {12 System.out.println(stack.pop())13 }14 }15 }

public class IntStack {

private int[] stack

private int top

/**

*初始化栈,传入一个非负的整数,否则抛出一个错误

*/

public IntStack(int size) throws StackErrorException{

if(size<0){

throw new StackErrorException("错误的大小")

}

init(size)

}

private void init(int size) {

stack = new int[size]

top = 0

}

/**

*判断栈是否为空,true则为空,反之则反

*/

public boolean isEmpty(){

return top==0

}

/**

*判断栈是否已满,true则已满,反之则反

*/

public boolean isFull(){

return top==stack.length

}

/**

*向栈顶添加元素,满则抛出异常

*/

public void push(int value) throws StackErrorException{

if(isFull()){

throw new StackErrorException("栈已满")

}

stack[top++] = value

}

/**

*移除栈顶元素并返回,空则抛出异常

*/

public int pop() throws StackErrorException{

if(isEmpty()){

throw new StackErrorException("已到栈底!")

}

return stack[--top]

}

/**

*返回栈顶元素,空则抛出异常

*/

public int peek() throws StackErrorException{

if(isEmpty()){

throw new StackErrorException("已在栈底!")

}

return stack[top-1]

}

/**

*返回栈大小

*/

public int size(){

return stack.length

}

class StackErrorException extends Exception{

public StackErrorException(String msg) {

super(msg)

}

}

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11887551.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-19
下一篇 2023-05-19

发表评论

登录后才能评论

评论列表(0条)

保存