实现栈操做的接口:java
Stack.javacode
package com.wanali.java_ds.sqstack; public interface Stack { public void clear(); public boolean empty();//判断栈是否为空 public int length();//求栈的长度 public Object peek();// 取得栈顶元素 public void push(Object x);// 向栈顶添加元素 public Object pop();// 删除并返回栈顶元素 public void display();//打印栈中元素 }
SqStack.java接口
package com.wanali.java_ds.sqstack; public class SqStack implements Stack { private Object[] elem; private int top; public SqStack(int maxsize) { top = 0; elem = new Object[maxsize]; } public void clear() { // TODO Auto-generated method stub while (top != 0) { elem[top] = null; top--; } } public boolean empty() { // TODO Auto-generated method stub return top == 0; } public int length() { // TODO Auto-generated method stub int i = 0; while (top != 0) { i++; --top; } return i; } public Object peek() { // TODO Auto-generated method stub return elem[top - 1]; } public void push(Object x) { // TODO Auto-generated method stub elem[top] = x; top++; } public Object pop() { // TODO Auto-generated method stub return elem[--top]; } public void display() { for (int i = top - 1; i >= 0; i--) { System.out.println(elem[i]); } } }
TestSqStack.java图片
package com.wanali.java_ds.sqstack; public class TestSqStack { public static void main(String[] args) { SqStack stack = new SqStack(10); stack.push(1); stack.push(2); stack.push(3); stack.push(4); stack.display(); System.out.println("判断栈是否为空:"); System.out.println(stack.empty()); System.out.println("删除栈顶元素:"); stack.pop(); stack.display(); System.out.println("取栈顶元素:"+"\n"+stack.peek()); System.out.println("栈的长度为:" + "\n" + stack.length()); System.out.println("调用clear方法清空栈:"); stack.clear(); stack.display(); System.out.println("栈已被清空!!"); System.out.println("判断栈是否为空:"); System.out.println(stack.empty()); } }
运行结果以下:it