「这是我参与2022首次更文挑战的第13天,活动详情查看:2022首次更文挑战」。
数据结构之栈
前文
本文为对于栈相关知识内容的总结,主要是针对java中的使用。由于是个人对知识的整理,因此可能存在不足之处,还请见谅。
栈
所谓栈,它是一种常用的数据结构。它的特性简单来说,就是先进后出,后进先出,先进入栈的数据会最后才离开栈。为了实现这个特性,显然栈中数据的增加和删除操作都会发生在栈的最顶端。举个生活中的例子,就像水杯装水,新加入的水永远在水杯的最上方,最先添加的水都是最后才能喝到。
栈在开发中是一个十分常用的数据结构。栈的用法主要集中于数据的使用顺序与保存顺序相反的情况。这种情况恰好与栈的先进后出特性吻合,能达到数据结构的完美适配。有一道十分经典的算法题,判断三种括号组成的字符串是否合法可以用栈进行解答。对字符串中的每个字符串进行遍历处理。如果遇到了左侧的三种括号之一,则将其插入到栈中。如果遇到了右侧的三种括号之一,则从栈顶得到第一个元素。利用得到的元素与遍历的右括号进行匹配。倘若两个括号能够匹配,则继续进行遍历操作。反之,如果两个括号不匹配,则可以判断该字符串并非所需的栈结构,即可结束循环。
在java中,使用栈可以用一个类:java.util.Stack。这个类是java中自带的栈操作类。如果想要向栈中添加元素,则可以调用push方法。如果想要从栈顶一处元素,则调用pop方法即可。同样的,还有若干其他的操作方法,例如peek、empty等等方法,可以对栈中的数据进行操作。
栈是开发中很常用的一种数据结构,某些场景会有很大的作用。
后记
- 千古兴亡多少事?悠悠。不尽长江滚滚流。