标签:lifo

栈java实现

发表于3年前(Dec 24, 2014 10:23:52 AM)  阅读 456  评论 0

分类: Java 数据结构

标签: lifo stack 后进先出

栈是一种后进先出(LIFO,last in first out)的数据集合。可以把栈看成餐馆中用来放盘子的、里面安装了弹簧的栈,盘子弹出的顺序跟被压入的顺序正好相反,因为在每一时刻,只有最顶上的盘子是可以拿到的。

栈中操作元素的方法通常为两种,压入(push)与弹出(pop)。先下的代码用java数组实现了栈,加入了栈的自动增长,关于自动增长要说的是,有些算法对于自动增长的时机以及自动增长的容量有特殊研究,这里只是简单的采用当数组满后将数组长度翻倍的做法。代码中自定义的异常StackOverFlowException只是简单实现了RuntimeException中的String构造方法,这里就不再给出,读者可以自行使用RuntimeException替代。对于泛型的使用请参考java中关于泛型的用法。