面试官问我栈的概念,我随手画了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)