python实现栈

  由于python弱类型,因此免去了写泛型的麻烦。我定义一个stack类以栈的操作来维护一个list。

 1 class stack:
 2     def __init__(self, _size = 1024):
 3         self.data = []
 4         self._size = _size
 5         self._top = -1
 6
 7     def empty(self):
 8         if self._top == -1:
 9             return True
10         else:
11             return False
12
13     def size(self):
14         return self._top+1
15
16     def top(self):
17         return self.data[self._top]
18
19     def clear(self):
20         self.data = []
21         self._top = -1
22
23     def push(self, ele):
24         if self._top + 1 == self._size:
25             raise ‘Stack Over Flow‘
26         else:
27             self.data.append(ele)
28             self._top += 1
29
30     def pop(self):
31         if self.empty():
32             raise ‘Stack Under Flow‘
33         else:
34             ele = self.data[self._top]
35             del self.data[self._top]
36             self._top -= 1
37             return ele
38
39 s = stack(5)
40
41 s.push(1)
42 s.push(2)
43 s.push(3)
44 s.push(5)
45 s.push(4)
46 # s.push(233)
47
48 size = s.size()
49 for i in range(0, size):
50     print(s.top())
51     s.pop()
时间: 2024-10-11 18:25:49

python实现栈的相关文章

python全栈和python自动化课程的区别在哪?

老男孩算是国内组早的做python培训的机构了,下面小编对于python自动化课程及全栈课程做了一个总结,希望能帮到你们: python全栈开发: 适合人群:应届本科生,专科,及零基础学员学习基础:0基础上课形式:脱产5个月,周一至周五上课课程内容:linux基础知识,python基础知识,网络编程,数据库应用,web开发,算法设计模式项目实战:博客系统开发,CRM系统开发,CMDB开发,主机开发管理,爬虫开发,金融量化交易项目开发未来发展方向:python全栈开发工程师就业方向:python爬

Python全栈开发【基础三】

Python全栈开发[基础三]  本节内容: 函数(全局与局部变量) 递归 函数 一.定义和使用 函数最重要的是减少代码的重用性和增强代码可读性 1 def 函数名(参数): 2 3 ... 4 函数体 5 ... 6 返回值 函数的定义主要有如下要点: def:表示函数的关键字 函数名:函数的名称,日后根据函数名调用函数 函数体:函数中进行一系列的逻辑计算 参数:为函数体提供数据 返回值:当函数执行完毕后,可以给调用者返回数据. 总结使用函数的好处: 1.减少代码重用 2.保持一致性,易维护

Python全栈开发【第一篇】:初识Python

Python全栈开发[第一篇] 本节内容: Python 的种类 Python 的环境 Python 入门(解释器.编码.变量.input输入.if流程控制与缩进.while循环) if流程控制与while循环练习题 基本数据类型前引 Python 的种类 Cpython Python的官方版本,使用C语言实现,使用最为广泛,CPython实现会将源文件(py文件)转换成字节码文件(pyc文件),然后运行在Python虚拟机上. Jyhton Python的Java实现,Jython会将Pyth

Python全栈开发

Python全栈开发 一文让你彻底明白Python装饰器原理,从此面试工作再也不怕了. 一.装饰器 装饰器可以使函数执行前和执行后分别执行其他的附加功能,这种在代码运行期间动态增加功能的方式,称之为“装饰器”(Decorator),装饰器的功能非常强大,但是理解起来有些困难,因此我尽量用最简单的例子一步步的说明这个原理. 1.不带参数的装饰器 假设我定义了一个函数f,想要在不改变原来函数定义的情况下,在函数运行前打印出start,函数运行后打印出end,要实现这样一个功能该怎么实现?看下面如何用

Python全栈开发【基础二】

Python全栈开发[基础二] 本节内容: Python 运算符(算术运算.比较运算.赋值运算.逻辑运算.成员运算) 基本数据类型(数字.布尔值.字符串.列表.元组.字典) 编码与进制转换 Python 运算符 1.算术运算: 2.比较运算: 3.赋值运算: 4.逻辑运算:  5.成员运算: 基本数据类型 1.数字 int(整型) 1 class int(object): 2 """ 3 int(x=0) -> integer 4 int(x, base=10) -&g

Python全栈考试-部分试题(精选)

Python全栈考试(一) Python全栈考试(一) 1.执行 Python 脚本的两种方式 答:1.>>python ../pyhton.py 2. >>python.py   #必须在首行有 #!/usr/bin/env python3 指定执行语言 2.简述位.字节的关系 答:一个字节(byte)=8位(bit)  位为最小的单位 3.简述 ascii.unicode.utf-8.gbk 的关系 ascii:只能表示256个符号 unicode:万国码,各国都有 需要有2位

51CTO - 老男孩python全栈心路

转眼入学都两个月了,自从参加老男孩python全栈的课以来,感觉收获很多. 一.为什么参加培训 我是非计算机专业毕业的,有那么几年的工作经验,之前都是依靠自学,所谓的野路子出身.刚开始还好,目标就是查资料,解决问题. 但后来随着工作年限的积累,别人的工资都蹭蹭蹭的往上涨,而我只能一点点的往上挪.心中难免不服气,比我牛的比我工资高我也就认了,为啥那些没我有经验的,水平不如我的工资也可以比我高? 后来发现,人家都说科班出身的,用了四年的时间来打基础,而我只能是遇到问题临时抱佛脚.心理平衡了,自然就要

Python全栈之路系列之赋值与运算符

Python全栈之路系列之赋值与运算符 在继续下面的文章之前我们先来浏览一下Python为我们提供的几种运算符,定义两个变量,分别是a和b,a的值是10,b的值是20. 算术运算符 运算符 描述 实例 + 加,两个对象相加 a+b=30 - 减,两个对象相减,可能会得到负数 a-b=-10 * 乘,两数相称或是返回一个被重复若干次的字符串 a*b=200 / 除,两个对象相除 b/a=2 % 取膜,返回除法的余数 b%a=0 ** 幂,返回x的y次幂 a**b=10000000000000000

Python全栈问答小技巧_2

Python全栈测试题(二) 作者:尹正杰 声明:答案如有偏差,欢迎指正! 1. 计算100-300之间所有能被3和7整除的所有数之和

Python全栈【Socket网络编程】

Python全栈[socket网络编程] 本章内容: Socket IO多路复用(select) SocketServer 模块(ThreadingTCPServer源码剖析) Socket socket通常也称作"套接字" 用于描述IP地址和端口,是一个通信链的句柄,应用程序通常通过"套接字"向网络发出请求或者应答网络请求. socket起源于Unix,而Unix/Linux基本哲学之一就是"一切皆文件",对于文件用[打开][读写][关闭]模式