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):
        """弹出栈顶元素"""
        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

以上。

猜你喜欢

转载自www.cnblogs.com/sirxy/p/12148081.html