Python数据结构-列表实现堆栈

介绍

堆栈一种特别的列表,其只允许在一端插入删除数据。也就是所谓的"先进后出"。乍一看,堆栈就是一个特殊化的列表,也就是列表完全可以当作堆栈用,但是由于我们经常对列表进行在一端插入和删除数据操作,因此渐渐的其就成为一个独立的数据结构--堆栈

堆栈示意图

常用方法

stack.push(value) 

在堆栈末尾添加一个元素

stack.pop(value) 

删除并返回栈顶元素,当堆栈为空会提示'堆栈已空,出栈失败',并返回None 

stack.show_top() 

查看并返回栈顶元素,但不删除,当堆栈为空会提示'堆栈已空,查看失败',并返回None 

stack.stack_is_empty() 

判断堆栈是否为空

方法事例

class Stack():
    def __init__(self):
        self._stack = []

    # 入栈
    def push(self, value):
        self._stack.append(value)

    # 出栈
    def pop(self):
        if self.stack_is_empty():
            return self._stack.pop()
        else:
            print('堆栈已空,出栈失败')

    # 查看栈顶元素
    def show_top(self):
        if self.stack_is_empty():
            return self._stack[-1]
        else:
            print('堆栈已空,查看失败')

    # 判断堆栈是否为空
    def stack_is_empty(self):
        return self._stack != []


stack = Stack()
# 入栈
stack.push(1)
stack.push(2)
stack.push(3)
# 查看栈顶数据
print(f'当前栈顶数据为:{stack.show_top()}') # 当前栈顶数据为:3
# 出栈
print(f'当前出栈数据为:{stack.pop()}') # 当前出栈数据为:3
print(f'当前出栈数据为:{stack.pop()}') # 当前出栈数据为:2
print(f'当前出栈数据为:{stack.pop()}') # 当前出栈数据为:1
print(f'当前出栈数据为:{stack.pop()}') # 堆栈已空,出栈失败  当前出栈数据为:None

 


写在最后

入门使用就这些,更高深的用法在实践中去发现吧。。。

 

THE END
分享
二维码
打赏
< <上一篇
下一篇>>