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]; 
    } 
}

 

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/15860.html

(0)
上一篇 2021年7月19日
下一篇 2021年7月19日

相关推荐

发表回复

登录后才能评论