面试官问我栈的概念,我随手画了10张图给他解释
栈(Stack)是一种遵循先进后出(LIFO)原则的线性数据结构。在栈中,所有新加入的元素都被放置在栈顶,并且只有栈顶的元素才可以被移除。这个模型可以用一个类似于弹夹的容器来进行描述。下面我们将通过代码和图示来进一步理解栈。
首先,我们需要实现一个栈类。下面的代码展示了一个基于Python的简单栈实现。
class Stack:
def __init__(self):
self.items = []
def is_empty(self):
return len(self.items) == 0
def push(self, item):
self.items.append(item)
def pop(self):
return self.items.pop()
def peek(self):
return self.items[-1]
def size(self):
return len(self.items)
接下来,让我们看一下栈的常见操作以及它们对应的图示。
- 创建一个空栈
s = Stack()
- 将元素放入栈中(push)
s.push(1)
s.push(2)
s.push(3)
- 查看栈顶元素(peek)<
本文通过10张图详细解释了栈这一数据结构的原理和操作,包括栈的创建、元素的压入与弹出、检查栈的状态以及其在括号匹配、十进制转二进制、中缀表达式转换等方面的应用。同时提供了基于Python的简单栈实现示例。
订阅专栏 解锁全文
643

被折叠的 条评论
为什么被折叠?



