栈的特点是后进先出!
栈可以用顺序表实现,也可以用链表实现。
栈是一种运算受限的线性表。其限制是仅允许在表的一端进行插入和删除运算。这一端被称为栈顶,相对地,把另一端称为栈底。向一个栈插入新元素又称作进栈、入栈或压栈,它是把新元素放到栈顶元素的上面,使之成为新的栈顶元素;从一个栈删除元素又称作出栈或退栈,它是把栈顶元素删除掉,使其相邻的元素成为新的栈顶元素。
class Stack(object):
# 后进先出
def __init__(self):
self.__data = []
@property
def length(self):
return len(self.__data)
def is_empty(self):
return self.__data == []
@property
def peek(self):
# 仅返回栈顶元素而不出栈, 若栈为空则返回None
return None if self.length == 0 else self.__data[-1]
def push(self, data):
# 入栈
self.__data.append(data)
def pop(self):
# 出栈
return self.__data.pop()
总结
人生苦短,我用python!