JAVA数据结构--栈

  栈是一种用于存储数据的简单数据结构。


定义

  栈是一个有序线性表,表中元素的插入和删除操作只在同一端进行。先插入的元素后删除,后插入的元素先删除。因此,栈也被称为后进先出(Last In First Out, LIFO)或先进后出(First In Last Out, FILO)线性表。
  类似于摞盘子和取盘子,通常先放的盘子在下面,后放的盘子往上叠加,在取盘子的时候只能从上往下。就出现了,先放的盘子在下面,所以慢取出;后放的盘子在上面,先取出。类似于栈的入栈push和出栈pop操作。


操作

  • 入栈(push):将元素存储到栈顶,并更新栈顶位置信息。
  • 出栈(pop):将栈顶元素取出、删除,并返回给调用者。

异常

  • 溢出:对一个满栈进行入栈操作出现的异常。
  • 下溢:对一个空栈进行出栈操作出现的异常。

方法构成

  假设栈存储的数据类型为整型。

1.主要方法

  • void push(int data): 将data(数据)插入栈。
  • int pop():删除并返回最后一个插入栈的元素。
    2.可选的辅助方法
  • int top(): 返回最后一个插入栈的元素,但不删除。
  • int size(): 返回存储在栈中元素的个数。
  • int isEmpty(): 判断栈中是否有元素。
  • int isStackFull(): 判断栈中是否存满元素。

应用

1.直接应用

  • 符号匹配
  • 实现函数的调用(包括递归)
  • 求范围误差(极差)

2.间接应用

  • 作为一个算法的辅助数据结构(例如,树遍历算法)
  • 其他数据结构的组件

针对栈的应用,我会在后面的应用过程中找一些例子进行补充。


栈的实现

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容