Python自定义栈类

栈是一种后进先出的数据结构,Python内建库中并未提供Stack类。本文介绍了如何根据LIFO原则自定义Python栈类,包括push和pop操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

栈(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_[]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值