zoukankan      html  css  js  c++  java
  • 关于栈

      栈(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);
        }
    
    }
  • 相关阅读:
    shell 字符串切分成数组
    RDD关键性能考量之 内存管理
    RDD关键性能考量之 序列化格式
    【转】Linux ln(link) 命令详解
    【转】redis配置认证密码
    【转】MongoDB 知识要点一览
    RDD关键性能考量之 并行度
    使用thumbnailator不按照比例,改变图片的大小
    Linux服务器redhat配置本地yum源
    Oracle表字段的增删改和重命名
  • 原文地址:https://www.cnblogs.com/mutong1228/p/8992533.html
Copyright © 2011-2022 走看看