栈(stack)又名堆栈,它是一种运算受限的线性表。其限制是仅允许在表的一端进行插入和删除运算。
这一端被称为栈顶,相对地,把另一端称为栈底。向一个栈插入新元素又称作进栈、入栈或压栈,它是把新
元素放到栈顶元素的上面,使之成为新的栈顶元素;从一个栈删除元素又称作出栈或退栈,它是把栈顶元
素删除掉,使其相邻的元素成为新的栈顶元素。
特点:后进先出(LIFO)
使用场景:平衡符号的判断,行编译器等,后续会有详解。
代码实现:
class Stack:
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) s = Stack() print("stack test start:")
s.push(4)
s.push('dog')
s.push(True)
s.push(8.4) print("stack size: %d " % s.size())
print("stack element: %s" % s.peek())
print("del element: %s" % s.pop())
print("stack size: %d" % s.size())