栈的Java简单实现

来源:互联网 发布:网络p2p理财哪家好 编辑:程序博客网 时间:2024/06/01 08:24
关于栈

  栈(Stack)是限定只能在一段进行插入和删除操作的线性表。

  进行插入和删除操作的一端称为“栈顶”(top),另一端称为“栈底”(bottom)。

  栈的插入操作称为“入栈”(push),栈的删除 操作称为“出栈”(pop)。

  栈具有后进先出(LIFO),先进后出(FILO)的特性。

Java Stack 类 

  栈是Vector的一个子类,它实现了一个标准的后进先出的栈。

  堆栈只定义了默认构造函数,用来创建一个空栈。 堆栈除了包括由Vector定义的所有方法,也定义了自己的一些方法。

  除了由Vector定义的所有方法,自己也定义了一些方法:

序号方法描述1boolean empty() 
测试堆栈是否为空。2Object peek( )
查看堆栈顶部的对象,但不从堆栈中移除它。3Object pop( )
移除堆栈顶部的对象,并作为此函数的值返回该对象。4Object push(Object element)
把项压入堆栈顶部。5int search(Object element)
返回对象在堆栈中的位置,以 1 为基数。

自定的Stack Class

  

package DataStructe;public class MyStack_Text {            static class mystack    {        int mytop;        int stack[];                public mystack(int num) {            mytop=-1;            stack=new int[num];        }        /*出栈*/        void mypop()        {            mytop--;        }        /*入栈*/        void mypush(int x)        {            mytop++;            stack[mytop]=x;                    }        /*判空*/        Boolean myisempty()        {            if(mytop==-1)                return true;            else                return false;        }        /*取栈顶元素*/        int mypeek()        {            int peek=stack[mytop];            return peek;        }        /*栈大小*/        int mysize()        {            return mytop+1;        }    }            public static void main(String[] args) {        mystack myStack=new mystack(20);        myStack.mypush(1);        myStack.mypush(2);        myStack.mypush(3);        myStack.mypush(4);        System.out.print("栈大小为"+myStack.mysize());        System.out.println();        for(int i=myStack.mytop;i>=0;i--)        {            int get=myStack.mypeek();            myStack.mypop();            System.out.println(get);        }            }        }

 

原创粉丝点击