数据结构
栈(Stack)
python
# Python 用 list 模拟栈
stack = []
stack.append(1) # push
stack.append(2)
top = stack.pop() # pop -> 2
peek = stack[-1] # 查看栈顶 -> 1应用场景: 括号匹配、函数调用栈、浏览器历史、表达式求值
队列(Queue)
python
from collections import deque
q = deque()
q.append(1) # 入队
q.append(2)
front = q.popleft() # 出队 -> 1应用场景: BFS、任务调度、消息队列
哈希表
python
# Python dict 就是哈希表
freq = {}
for char in "hello":
freq[char] = freq.get(char, 0) + 1
# {'h':1, 'e':1, 'l':2, 'o':1}二叉树遍历
python
class TreeNode:
def __init__(self, val=0):
self.val = val
self.left = self.right = None
# 前序:根 -> 左 -> 右
def preorder(root):
if not root: return []
return [root.val] + preorder(root.left) + preorder(root.right)
# 层序(BFS)
from collections import deque
def levelorder(root):
if not root: return []
res, q = [], deque([root])
while q:
node = q.popleft()
res.append(node.val)
if node.left: q.append(node.left)
if node.right: q.append(node.right)
return res