堆栈(英语:stack)又称为栈或堆叠,是计算机科学中的一种抽象数据类型,只允许在有序的线性数据集合的一端(称为堆栈顶端,英语:top)进行加入数据(英语:push)和移除数据(英语:pop)的运算。因而按照后进先出(LIFO, Last In First Out)的原理运作。
# -*- coding:utf-8 -*-
class Stack:
def __init__(self):
self.items = []
# 栈是否为空
def isEmpty(self):
return self.items == []
# 将item加入栈顶,无返回值
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)
if __name__ == '__main__':
s = Stack()
print(s.isEmpty())
print(s.push('hello'))
print(s.isEmpty())
print(s.push('world'))
print(s.size())
print(s.peek())
print(s.pop())