1.青铜挑战——理解栈手写栈
1.栈基础知识
栈是很多表达式,符号计算的基础,也是递归的底层实现。
2.基于数组实现栈
采用顺序表实现的栈,内部以数组为基础,实现对元素的存取操作。在应用中还要注意每次入栈之前先判断栈的容量是否够用,如果不够用,可以进行扩容。
class Stack(object):
def __init__(self):
self.items = []
def is_empty(self):
return self.items == []
def push(self, item):
self.items.append(item)
def pop(self):
return self.items.pop()
def peek(self):
return self.items[len(self.items) - 1]
def size(self):
return len(self.items)
stack = Stack()
stack.push(1)
stack.push(2)
stack.push(3)
print(stack.peek())
print(stack.size())
print(stack.is_empty())
print(stack.pop())
print(stack.pop())
print(stack.pop())
print(stack.size())
print(stack.is_empty())
Python本身不擅长链表更适合数组方式。