Python将list列表维护成一个栈

  • 1、简单了解:

栈(stack)又名堆栈,它是一种运算受限的线性表。

限定仅在表尾进行插入和删除操作的线性表。这一端被称为栈顶,相对地,把另一端称为栈底。

向一个栈插入新元素又称作进栈、入栈或压栈,它是把新元素放到栈顶元素的上面,使之成为新的栈顶元素;

从一个栈删除元素又称作出栈或退栈,它是把栈顶元素删除掉,使其相邻的元素成为新的栈顶元素。

"栈“者,存储货物或供旅客住宿的地方,可引申为仓库、中转站,所以引入到计算机领域里,就是指数据暂时存储的地方,所以才有进栈、出栈的说法。

——百度百科

  • 2、代码实现:

下面是将python中内置的list数据类型维护成一个栈的简单实现:

class Stack(object):
        """该类将list列表维护成一个栈"""

	def __init__(self):
		self.items = []

	def isEmpty(self):
		"""判断栈是否为空"""
		return self.items == []

	def push(self, item):
		"""添加一个新的元素item到栈顶"""
		self.items.append(item)

	def pop(self):
		"""弹出栈顶元素"""
        if self.isEmpty():
            return "Stack Is Empty"
		return self.items.pop()

	def top(self):
		"""返回栈顶元素"""
		return self.items[len(self.items) - 1]

	def size(self):
		"""返回栈的元素个数"""
		return len(self.items)

现在,使用该Stack类实例化一个栈后,就能用其方法了:

stack = Stack()
print(stack.isEmpty())
print()
stack.push('you')
stack.push('love')
stack.push('I')
print(stack.top())
print(stack.size())
print(stack.isEmpty())
print(stack.pop())
print(stack.pop())
print(stack.pop())
print(stack.size())

打印结果:

True
I
3
False
I
love
you
0

以上。

posted @ 2020-01-04 10:27  洪荒少男~  阅读(467)  评论(0编辑  收藏  举报