zoukankan      html  css  js  c++  java
  • 自定义栈(三)

    栈只能在一端进行删除和插入操作,换句话说就是后进后出。最先进来的元素叫做栈底。

        可以简单的理解成一桶水,后来的水放在最上面。倒出的时候最上面的水最先倒出去。我用数组实现栈功能。

    插入push

       1、创建一个新的数组,大小比原来的数组长度大一。

       2、把原来的数组的值赋值到新数组

       3、新数组插入最新元素

       4、新数组赋值给原数组

    代码实现

    public class MyStack {
    
        int[] elements;
    
        public void push(int value) {
            int[] newArr = new int[elements.length + 1];
            for (int i = 0; i < elements.length; i++) {
                newArr[i] = elements[i];
            }
            newArr[elements.length] = value;
            elements = newArr;
        }
    
    }

    出栈POP

       1、创建一个新的数组,大小比原来的数组长度小一。

       2、获取返回结果,数组下标最大的那个元素。

       3、把原数组长度减少一赋值到新数组。

       4、新数组赋值给原数组

     

    public class MyStack {
    
        int[] elements;
    
        public int pop() {
            int result = elements[elements.length - 1];
            int[] newArr = new int[elements.length - 1];
            for (int i = 0; i < elements.length - 1; i++) {
                newArr[i] = elements[i];
            }
            elements = newArr;
            return result;
        }
    
    }

    所有代码

    public class MyStack {
    
        int[] elements;
    
        public MyStack() {
            elements = new int[0];
        }
    
        public void push(int value) {
            int[] newArr = new int[elements.length + 1];
            for (int i = 0; i < elements.length; i++) {
                newArr[i] = elements[i];
            }
            newArr[elements.length] = value;
            elements = newArr;
        }
    
        public int pop() {
            int result = elements[elements.length - 1];
            int[] newArr = new int[elements.length - 1];
            for (int i = 0; i < elements.length - 1; i++) {
                newArr[i] = elements[i];
            }
            elements = newArr;
            return result;
        }
    
        public int peel() {
            return elements[elements.length - 1];
        }
    
        public int size() {
            return elements.length;
        }
    
        public void show() {
            System.out.println(Arrays.toString(elements));
        }
    }
  • 相关阅读:
    语音识别算法阅读之CTC
    语音识别模型阅读之CLDNN
    声纹识别算法阅读之self-attentive x-vector
    Git链接两个远程仓库
    tortoisegit提交不到远程库问题解决记录
    安装 Git 命令之后,本地的工作区中的文件没有小图标解决办法
    .NET CLS(Common Language System)简介
    .NET CTS(Common Type System)简介
    C# 中间语言
    .NET 程序执行流程
  • 原文地址:https://www.cnblogs.com/laolei11/p/10642365.html
Copyright © 2011-2022 走看看