📜  堆栈数据结构python(1)

📅  最后修改于: 2023-12-03 15:08:08.850000             🧑  作者: Mango

堆栈数据结构 in Python

堆栈(Stack)是一种常见的数据结构,它遵循后进先出(LIFO)的原则。在堆栈中,如果要插入/删除一个元素,它只能在堆栈的顶部进行。Python中的列表也可以用作堆栈数据结构。

创建堆栈

创建堆栈可以使用Python中的列表(list)。可以使用以下代码创建一个空堆栈:

stack = []

如果要创建一个带有元素的堆栈,则可以使用以下代码:

stack = [1, 2, 3, 4, 5]
堆栈操作

堆栈支持以下操作:

  • push(): 将元素推入堆栈的顶部。
  • pop(): 从堆栈的顶部删除元素,并返回该元素的值。
  • peek(): 返回堆栈顶部的元素值,但不删除元素。
  • is_empty(): 堆栈为空返回True,不为空返回False。
  • size(): 返回堆栈中元素的数量。

以下是操作的相应代码:

# push()操作
stack.append(6)
print(stack)  # 输出: [1, 2, 3, 4, 5, 6]

# pop()操作
stack.pop()
print(stack)  # 输出: [1, 2, 3, 4, 5]

# peek()操作
print(stack[-1])  # 输出: 5

# is_empty()操作
print(not bool(stack))  # 输出: False

# size()操作
print(len(stack))  # 输出: 5
堆栈实现

让我们通过创建一个堆栈类来实现堆栈。以下是实现代码:

class Stack:
    def __init__(self):
        self.items = []

    def push(self, item):
        self.items.append(item)

    def pop(self):
        return self.items.pop()

    def peek(self):
        return self.items[-1]

    def is_empty(self):
        return not bool(self.items)

    def size(self):
        return len(self.items)

现在我们可以使用以下代码进行堆栈操作:

s = Stack()
s.push('hello')
s.push('world')
s.push('!')

print(s.peek())  # 输出: !
print(s.pop())  # 输出: !
print(s.peek())  # 输出: world
print(s.is_empty())  # 输出: False
print(s.size())  # 输出: 2

通过这个堆栈类,我们可以更好地了解Python中的堆栈数据结构。