📅  最后修改于: 2023-12-03 15:26:09.228000             🧑  作者: Mango
堆栈是一种数据结构,它是一个后进先出(Last In First Out)的数据集合。只有一个出口的线性一维结构,仅允许在表尾进行插入和删除操作,因此,在插入和删除的说法中,只有“后进先出”(LIFO)。
堆栈的常见应用场景包括:
堆栈可以使用数组和链表两种数据结构实现。
class Stack:
def __init__(self):
self.stack = []
def push(self, value):
self.stack.append(value)
def pop(self):
if len(self.stack) == 0:
return None
else:
return self.stack.pop()
def peek(self):
if len(self.stack) == 0:
return None
else:
return self.stack[-1]
def is_empty(self):
return len(self.stack) == 0
class Node:
def __init__(self, value=None, next=None):
self.value = value
self.next = next
class Stack:
def __init__(self):
self.head = None
def push(self, value):
new_node = Node(value)
new_node.next = self.head
self.head = new_node
def pop(self):
if self.head is None:
return None
else:
value = self.head.value
self.head = self.head.next
return value
def peek(self):
if self.head is None:
return None
else:
return self.head.value
def is_empty(self):
return self.head is None
堆栈是一种常见的数据结构,具有后进先出的特点。它可以使用数组和链表两种数据结构实现。在实际应用中,堆栈被广泛用于表达式求值、函数调用栈、浏览器历史记录以及撤销/重做等操作。熟练掌握堆栈的使用和实现,对于程序员来说是非常重要的基础知识。