• Python 之“栈为何物”


    究竟栈为何物

    栈是一种线性数据结构,用先进后出或者是后进先出的方式存储数据,栈中数据的插入删除操作都是在栈顶端进行。
    栈是一种特殊的列表,栈内的元素只能通过一端进行访问,这一端为栈顶。

    Python 如何实现栈
    使用内置数据结构List 可以用来实现栈;
    使用append() 向栈顶添加元素;
    使用pop() 可以以后进先出的顺序删除元素;

    Python 实栈代码

     1  
     2 from logging import exception
     3 class testStack():
     4     def __init__(self,size):
     5         self.size=size #堆栈的大小
     6         self.stack_info=[]#堆栈的存放空间
     7         self.top=-1 #用来记录与判断栈的状态位
     8  
     9     def push(self,value): #进栈
    10         if(self.isfull()):
    11             raise exception("stack is full")
    12         else:
    13             self.stack_info.append(value)
    14             self.top+=1
    15  
    16     def pop(self):#出栈
    17         if(self.isempty()):
    18             raise exception("stack is empty")
    19         else:
    20             self.top-=1
    21             # print(self.top)
    22             self.stack_info.pop()
    23  
    24     def sizes(self):#计算栈的长度
    25         return len(self.stack_info)
    26  
    27     def isfull(self): #判定栈是否满了
    28         return self.top+1==self.size
    29  
    30     def isempty(self): #判定栈是否是空
    31         return self.top==-1
    32  
    33     def showStack(self):#打印栈内容
    34         print(self.stack_info)
    35  
    36     def clean(self):#清空栈
    37         self.stack_info.clear()
    38  
    39 if __name__ == '__main__':
    40     s=testStack(10)
    41     for i in range(10):
    42         s.push(i)
    43         print(s.sizes())
    44         s.showStack()
    45     for i in range(10):
    46         s.pop()
    47         print(s.sizes())
    48         s.showStack()

    欢迎关注【无量测试之道】公众号,回复【领取资源】,
    Python编程学习资源干货、
    Python+Appium框架APP的UI自动化、
    Python+Selenium框架Web的UI自动化、
    Python+Unittest框架API自动化、

    资源和代码 免费送啦~
    文章下方有公众号二维码,可直接微信扫一扫关注即可。

    备注:我的个人公众号已正式开通,致力于测试技术的分享,包含:大数据测试、功能测试,测试开发,API接口自动化、测试运维、UI自动化测试等,微信搜索公众号:“无量测试之道”,或扫描下方二维码:

     添加关注,让我们一起共同成长!

  • 相关阅读:
    通过C#的HttpClient模拟form表单请求
    通过Mysql连接ASP.Net Core2.0(Code First模式)
    每天一点产品思考(1):微博是否可以尝试取消点赞数展示?
    Google Analytics 学习笔记四 —— GA的Channels划分规则
    Google Analytics 学习笔记三 —— GA常用术语
    Google Analytics 学习笔记二 —— GA部署
    Google Analytics 学习笔记一 —— GA简介
    java基础知识总结(一)
    java源码解析之String类(二)
    java源码解析之String类(一)
  • 原文地址:https://www.cnblogs.com/Wu13241454771/p/13600713.html
Copyright © 2020-2023  润新知