zoukankan      html  css  js  c++  java
  • 栈的Java简单实现

    关于栈

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

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

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

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

    Java Stack 类 

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

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

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

    序号方法描述
    1 boolean empty() 
    测试堆栈是否为空。
    2 Object peek( )
    查看堆栈顶部的对象,但不从堆栈中移除它。
    3 Object pop( )
    移除堆栈顶部的对象,并作为此函数的值返回该对象。
    4 Object push(Object element)
    把项压入堆栈顶部。
    5 int 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);
            }
            
        }
        
        
    
    }

    作者:Rekent
    出处:http://www.cnblogs.com/rekent/
    本文版权归作者和博客园共有,欢迎转载、点赞,但未经作者同意必须保留此段申明,且在文章页面明显位置给出原文链接,否则保留追究法律责任的权利。

  • 相关阅读:
    hadoop再次集群搭建(3)-如何选择相应的hadoop版本
    48. Rotate Image
    352. Data Stream as Disjoint Interval
    163. Missing Ranges
    228. Summary Ranges
    147. Insertion Sort List
    324. Wiggle Sort II
    215. Kth Largest Element in an Array
    快速排序
    280. Wiggle Sort
  • 原文地址:https://www.cnblogs.com/rekent/p/6822743.html
Copyright © 2011-2022 走看看