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/
    本文版权归作者和博客园共有,欢迎转载、点赞,但未经作者同意必须保留此段申明,且在文章页面明显位置给出原文链接,否则保留追究法律责任的权利。

  • 相关阅读:
    ubuntu下安装JDK(复制)
    idea的ssm搭建(复制)
    linux常用命令(复制)
    Ubuntu安装nginx(复制)
    win7分盘(复制)
    mysql环境变量配置(复制)
    mysql的下载及配置(复制1)
    java环境变量的配置
    Windows 右键添加「cmd 打开」
    快速开启Windows 的各种任务及 bat(ch)脚本
  • 原文地址:https://www.cnblogs.com/rekent/p/6822743.html
Copyright © 2011-2022 走看看