堆栈的实现

来源:互联网 发布:手机php文件怎么打开 编辑:程序博客网 时间:2024/05/16 10:39

堆栈是一种后进先出的数据结构,主要需要实现的方法有两个,一个是压栈的操作PUSH,另一个是出栈的操作POP

很容易联想到可以通过数组这样的一个数据结构来实现堆栈

假设插入的顺序是1234567

(初始状态)

(插入后的状态,此时指针由右往左,顺序就是7654321,这样就实现先进后出的一个效果)

下面给出相关的代码:

package aa;import java.util.HashMap;public class Stack {/** * @param args */Object[] data;int maxSize;int top;public Stack(int maxSize) {super();this.maxSize = maxSize;data=new Object[maxSize];top=-1;}//获取堆栈的大小public int getMaxSize() {return maxSize;}//获取堆栈中元素的个数public int getTop() {return top;}public boolean isEmpty(){return top==-1;}public boolean isFull(){return top+1==maxSize;}//压栈public boolean Push(Object data){if(isFull()){System.out.println("堆栈已满!");return false;}this.data[++top]=data;return true;}//出栈public Object Pop(){if(isEmpty()){try {throw new Exception("栈已空!");} catch (Exception e) {// TODO Auto-generated catch blocke.printStackTrace();}}return this.data[top--];}//返回栈顶元素public Object peek(){return this.data[getTop()];}public static void main(String[] args){Stack s=new Stack(10);s.Push(1);s.Push(2);s.Push("lalala");s.Push(12.35);s.Push("di");System.out.println(s.peek());while(s.top>=0){System.out.println(s.Pop());}}}


0 0
原创粉丝点击