数据结构论坛

首页 » 分类 » 分类 » 数据结构栈白云的算法日记DAY7
TUhjnbcbe - 2024/8/26 17:06:00

哈喽大家好!又是白云~

今天小白要和大家一起学习的是数据结构中的重要概念,栈!

栈(Stack)是一种具有特殊操作方式的线性数据结构,其特点是数据的添加和删除操作都只能在栈顶进行,遵循后进先出(LIFO,LastInFirstOut)的原则。

当说到栈,你可以想象成一个堆积起来的盘子。假设你在厨房里,有一叠盘子摞在一起,这就好像是一个栈。每次你要往这叠盘子上面添加一个盘子,你只能将盘子放在最顶上那个。这个过程叫做push(入栈)。当你想拿走一个盘子时,必须先拿掉最顶上那一个,这就是pop(出栈)操作。

要查看最顶上的盘子是什么,你可以用peek(查看栈顶)操作,这样你就可以看到最顶上的盘子但不将它拿掉。如果你觉得有点懒,不想看一大堆盘子是否还有,可以直接用isEmpty(判断栈是否为空)来看这叠盘子是否被清空。所以,栈的结构就好比一个厨房里的盘子堆,你只能往这叠盘子上面放盘子或者拿走最顶上的盘子。

来看一个例题吧~

例题:使用栈实现一个括号匹配器,检查给定的括号序列是否合法。

输入:一个只包含字符(、)、{、}、[、]的字符串。

输出:如果括号序列合法,则输出True;否则输出False。

示例:

输入:{}

输出:True

输入:{}[]

输出:True

输入:(])

输出:False

例题的答案与解析~
1
查看完整版本: 数据结构栈白云的算法日记DAY7