zoukankan      html  css  js  c++  java
  • Java经典实例:实现一个简单堆栈

    堆栈(Stack)是一种常见的数据结构,符合后进先出(First In Last Out)原则,通常用于实现对象存放顺序的逆序。栈的基本操作有push(添加到堆栈),pop(从堆栈删除),peek(检测栈顶元素且不删除)。

    复制代码
    /**
     * Created by Frank
     */
    public class ToyStack {
        /**
         * 栈的最大深度
         **/
        protected int MAX_DEPTH = 10;
    
        /**
         * 栈的当前深度
         */
        protected int depth = 0;
    
        /**
         * 实际的栈
         */
        protected int[] stack = new int[MAX_DEPTH];
    
        /**
         * push,向栈中添加一个元素
         *
         * @param n 待添加的整数
         */
        protected void push(int n) {
            if (depth == MAX_DEPTH - 1) {
                throw new RuntimeException("栈已满,无法再添加元素。");
            }
            stack[depth++] = n;
        }
    
        /**
         * pop,返回栈顶元素并从栈中删除
         *
         * @return 栈顶元素
         */
        protected int pop() {
            if (depth == 0) {
                throw new RuntimeException("栈中元素已经被取完,无法再取。");
            }
    
            // --depth,dept先减去1再赋值给变量dept,这样整个栈的深度就减1了(相当于从栈中删除)。
            return stack[--depth];
        }
    
        /**
         * peek,返回栈顶元素但不从栈中删除
         *
         * @return
         */
        protected int peek() {
            if (depth == 0) {
                throw new RuntimeException("栈中元素已经被取完,无法再取。");
            }
            return stack[depth - 1];
        }
    }
    复制代码
  • 相关阅读:
    STL中的map
    HDU 4027 Can you answer these queries?
    HDU 2199 Can you solve this equation?
    USACO section1.2 Name That Number 命名那个数字
    HDU 3790 最短路径问题 (双重权值)
    [笔记]CiscoPT配置RIP
    [笔记]Cisco PT VLANTrunk配置
    iptables感悟Ubuntu
    CentOS网络配置
    Discuz X2 数据库备份功能分析
  • 原文地址:https://www.cnblogs.com/chinaifae/p/10238635.html
Copyright © 2011-2022 走看看