• 关于栈

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

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

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

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

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

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

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

    package com.lsw.datastruct;
    
    
    public class StackTest {
        static class MyStack{
            int top;
            //底层实现是一个数组
            int stack[];
            
            public MyStack(){
                top = -1;
                stack = new int[10];
            }
            public MyStack(int num){
                top = -1;  //初始化的时候无任何数据
                stack = new int[num];
            }
            //出栈
            public int pop(){
                return stack[top--];
            }
            //入栈
            public void push(int value){
                stack[++top] = value;
            }
            
            Boolean myIsEmpty(){
                if(top == -1)
                    return true;
                else
                    return false;
            }
            //取栈顶元素
            public int mypeek(){
                int peek = stack[top];
                return peek;
            }
            
            public Boolean isFull(){
                return top == stack.length - 1;
            }
            int mysize(){
                return top + 1;
            }
        }
        
        public static void main(String[] args){
            MyStack mystack = new MyStack(5);
            mystack.push(1);
            mystack.push(222);
            mystack.push(31);
            mystack.push(41);
            mystack.push(4);
            System.out.println(mystack.isFull());
            System.out.println(mystack.myIsEmpty());
            System.out.println(mystack.mysize() + "   " +mystack.top);
            for(int i=mystack.top;i>=0;i--)
            {
                int value=mystack.mypeek();
                mystack.pop();
                System.out.println(value);
            }
            System.out.println(mystack.top);
        }
    
    }
  • 相关阅读:
    webpack简介与使用
    webpack使用小记
    H5常用技巧
    mac 终端 常用命令
    vue.js学习资料
    git clean(转载)
    HTML5 移动端的上下左右滑动问题
    HTML5+CSS3 loading 效果收集--转载
    使用Chrome DevTools的Timeline分析页面性能
    phantomjs 是什么?----主要是mac下面
  • 原文地址:https://www.cnblogs.com/mutong1228/p/8992533.html
Copyright © 2020-2023  润新知