Python自定义栈类

栈(stack):又称为堆栈或堆叠,是计算机科学中的一种抽象数据类型,只允许在有序的线性数据集合的一端(称为堆栈顶端top)进行加入数据(push)和移除数据(pop)的运算。按照后进先出(LIFO, Last In First Out)的原理运作。

Python中没有Stack类,需要自定义。

自定义栈类:

class Stack(object):
	def __init__(self):                        #初始化空栈
		self.items = []

	def isEmpty(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)
	
	def clear(self):                           #清空栈
		self.items = []

    #当前对象的表现形式,此法给python解释器运行
	def __repr__(self):
		return 'Stack_' + str(self.items)

    #当前对象的字符串表示,使用print()时会调用,此法给人阅读
	def __str__(self):
		return 'Stack_' + str(self.items)

stack = Stack()
stack.push(1)
stack.push(2)
print(stack)
print(stack.size())
print(stack.isEmpty())
print(stack.peek())
print(stack)
print(stack.pop())
print(stack)
stack.clear()
print(stack.isEmpty())
print(stack)

结果为:

Stack_[1, 2]
2
False
2
Stack_[1, 2]
2
Stack_[1]
True
Stack_[]

猜你喜欢

转载自blog.csdn.net/qq_38882327/article/details/89348944