zoukankan      html  css  js  c++  java
  • java 数据结构与算法---栈

    原理来自百度百科

    一、栈的定义

    栈是一种只能在一端进行插入和删除操作的特殊线性表;它按照先进后出的原则存储数据,先进入的数据被压入栈底,最后的数据在栈顶,需要读数据的时候从栈顶开始弹出数据(最后一个数据被第一个读出来);栈具有记忆作用,对栈的插入与删除操作中,不需要改变栈底指针;插入一般称为进栈(PUSH),删除则称为退栈(POP)。

                                                                     

         

    二、栈的实现

    package com.jalja.org.arith;
    
    
    public class MyStack<E>{
        private Object [] arr;//存储
        private int index;//栈元素实际入栈索引
        private int maxSize;//栈的最大空间
        
        private MyStack(int maxSize) {
            this.arr=new Object[maxSize];
            this.index=0;
            this.maxSize=maxSize;
        }
        //入栈
        public void push(E e) {
            if(isFull()) {
                throw new RuntimeException("myStack  is full ");
            }
            arr[index++]=e;
        }
        //出栈
        public E pop() {
            if(isNull()) {
                throw new RuntimeException("myStack is null ");
            }
            E e=(E)arr[--index];
            return e;
        }
        //访问栈顶元素
        public E peek() {
            return (E)arr[index-1];    
        }
        //栈是否为空
        public boolean isNull() {
            return this.index <= 0;
        }
        //栈是否满了
        public boolean isFull() {
            return index>=maxSize;
        }
        public static void main(String[] args) {
            MyStack<String> myStack=new MyStack(3);
            myStack.push("A0");
            myStack.push("A1");
            myStack.push("A2");
            System.out.println(myStack.peek());
            while(!myStack.isNull()) {
                System.out.println(myStack.pop());
            }
        }
    }
  • 相关阅读:
    利用opengl画一个水波的曲面
    Eclipse 使用OpenGL
    Javascript学习过程(二)
    Workflow Learing
    YAWL设计实例
    YAWL使用方法
    ImageJ二次开发学习纪录之初步体会
    [LeetCode 660] Remove 9
    [LeetCode 1542] Find Longest Awesome Substring
    [LeetCode 879] Profitable Schemes
  • 原文地址:https://www.cnblogs.com/jalja/p/9052463.html
Copyright © 2011-2022 走看看