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]; } }
相关推荐
omyrobin 2020-09-23
gocuber 2020-07-16
贤时间 2020-07-06
hickwu 2020-06-14
xushxbigbear微信 2020-06-12
shayuchaor 2020-06-07
乾坤一碼農 2020-05-19
平凡的程序员 2020-05-07
IT小牛的IT见解 2020-04-30
BlueSkyUSC 2020-03-22
淼寒儿 2020-03-12
范范 2020-02-26
渴望就奋力追寻 2020-01-28
alicelmx 2020-01-24
Joymine 2020-01-17
hitxueliang 2020-01-07
roseying 2019-12-28
cxcxrs 2019-12-21