助你吃透那些年被捧上天的神秘算法(Python版④)

废话环节

从接触编程开始,就一直听周围年长一点的程序员讨论,小小的年纪,脑袋里充满了大大的疑惑,每次都想上前询问,何为
栈的数据存储结构可以是顺序表,也可以是链表,本篇博客我们使用 Python 来实现顺序栈
来自度娘的解释(听的云里雾里的)
栈(stack)又名堆栈,它是一种运算受限的线性表。限定仅在表尾进行插入和删除操作的线性表。这一端被称为栈顶,相对地,把另一端称为栈底。向一个栈插入新元素又称作进栈、入栈或压栈,它是把新元素放到栈顶元素的上面,使之成为新的栈顶元素;从一个栈删除元素又称作出栈或退栈,它是把栈顶元素删除掉,使其相邻的元素成为新的栈顶元素。
歪歪歪…,醒醒看完了,这就是
博主今天希望用Python语言为大伙们讲透
HaoXuan

栈(Stack)

简而言之:先进后出
栈(stacks)是一种数据结构,只能在一端进行插入和删除操作的特殊线性表, 它按照先进后出的原则存储数据(Last In First Out - LIFO)。

HaoXuan

Stack基础语法

#!/usr/bin/python3
# -*- coding: utf-8 -*-
# @Time    : 2020/3/19 13:01
# @Author  : HaoXuan
# @File    : 02_栈.py
# @Software: PyCharm
'''
栈底  1    2    3  栈顶
Stack()创建一个空的新栈,它不需要参数并且返回一个空栈。
push(item)将一个新项目添加到栈的顶部,它需要item做参数并返回任何内容。
pop()从栈中删除顶部项,它不需要参数并返回item。栈被修改。
peek()从栈后返回顶部项,但不会删除它。不需要参数,不修改栈。
isEmpty()测试栈是否为空。不需要参数并且返回布尔值。
size()返回栈中的item数量。不需要参数并返回一个整数。

Stack:先进后出
'''

顺序栈(框架)

class Stack():
    def __init__(self):
        self.items= []   #在程序中开辟一块区域,构建一个空栈
    def push(self,item):
        self.items.append(item)
    def pop(self):
        return self.items.pop()   #从列表中pop出值
    def peek(self):
        return len(self.items)- 1                 #返回栈顶元素的索引
    def isEmpty(self):
        return self.items ==[]   #如果返回的是True则Stack为空
    def size(self):
        return len(self.items)

测试程序

stack = Stack()
stack.push(1)
stack.push(2)
stack.push(3)

print('栈顶索引为:',stack.peek())
print(stack.isEmpty())
print('元素个数为:',stack.size())
print(stack.pop())
print(stack.pop())
print(stack.pop())

运行反馈

HaoXuan
博主个人认为属于一个预存储,可以理解为(一端操作,先进后出,后进先出)
希望本篇的基础只是能够帮到各位小伙伴,博主一直在努力写好每一篇博客,每次的实例代码都是博主亲手测试,修改,并且对不好理解的部分进行了注释,截取最简单易懂的部分,进行发表,只希望大家能够更好理解数据结构,我们一起加油💪奥里给
HaoXuan

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章