zoukankan      html  css  js  c++  java
  • java代码实现栈

      这几天在老家有点事,现在弄完了,继续研究一下数据结构,这次的栈并没有对多线程进行优化,如果有想优化的童鞋可以参考我上一篇文章对队列进行的优化,话不多说,上代码:

    package com.voole.cn;
    /**
     * @Description 这是一个数组实现的栈
     * @author TMAC-J
     *
     */
    public class StackByArray {
        /**
         * 储存元素的数组
         */
        private Object[] array = null;
        /**
         * 定义数组大小
         */
        private int size = 0;
        /**
         * 定义当前数组大小
         */
        private int currentSize = 0;
        /**
         * 定义指针
         */
        private int point = -1;
        /**
         * 构造方法
         */
        public StackByArray(int size){
            this.size = size;
            array = new Object[size];
        }
        /**
         * 入栈
         */
        public void push(Object data){
            if(isFull()){
                System.out.println("当前栈已满!");
                return;
            }
            point++;//指针上移
            array[point] = data;
            currentSize++;
            System.out.println("插入一个元素");
        }
        /**
         * 出栈
         */
        public void pop(){
            if(isEmpty()){
                System.out.println("当前栈为空!");
                return;
            }
            array[point] = null;
            point--;//指针下移
            currentSize--;
            System.out.println("删除一个元素");
        }
        /**
         * 判断是否为满
         */
        public boolean isFull(){
            if(currentSize>=size)return true;
            return false;
        }
        /**
         * 判断是否为空
         */
        public boolean isEmpty(){
            if(currentSize<=0)return true;
            return false;
        }
    }


    package com.voole.cn;

    
    

    public class Test {
    public static void main(String[] args) {
    StackByArray sba = new StackByArray(10);
    for(int i=0;i<10;i++){
    sba.push(i);
    }
    for(int i=0;i<10;i++){
    sba.pop();
    }
    }
    }

     

    输出的结果如下:

    插入一个元素
    插入一个元素
    插入一个元素
    插入一个元素
    插入一个元素
    插入一个元素
    插入一个元素
    插入一个元素
    插入一个元素
    插入一个元素
    删除一个元素
    删除一个元素
    删除一个元素
    删除一个元素
    删除一个元素
    删除一个元素
    删除一个元素
    删除一个元素
    删除一个元素
    删除一个元素

  • 相关阅读:
    lxml webdriver 抓取街拍
    python 正则抓取古诗词
    2021 最新版 Spring Boot 速记教程
    hbase 命令查看表大小
    Spring AOP,应该不会有比这更详细的介绍了!
    SpringBoot实战:整合Redis、mybatis,封装RedisUtils工具类等
    API接口的安全设计验证:ticket,签名,时间戳
    5.控制台输出空心菱形
    4.灯泡开关问题
    EXCEL函数
  • 原文地址:https://www.cnblogs.com/yzjT-mac/p/6072917.html
Copyright © 2011-2022 走看看