python有栈吗


本文摘自php中文网,作者藏色散人,侵删。

python有栈吗?

python是有栈的。栈(stacks)是一种只能通过访问其一端来实现数据存储与检索的线性数据结构,具有后进先出(last in first out,LIFO)的特征。

对栈的两种主要操作是将一个元素压入栈和将一个元素弹出栈。

入栈使用push()方法,出栈使用pop()方法

另一个常用的操作是预览栈顶的元素。pop()方法虽然可以访问栈顶的元素,但是调用该方法后,栈顶元素也从栈中被永久性地删除了。peek()方法则只返回栈顶元素,而不删除它

为了记录栈顶元素的位置,同时也为了标记哪里可以加入新元素,我们使用变量top,当向栈内压入元素时,该变量增大;从栈内弹出元素时,该变量减小

push()、pop()和peek()是栈的3个主要方法,但是栈还有其他方法和属性

stack通常的操作:

1

2

3

4

5

6

Stack()   建立一个空的栈对象

push()    把一个元素添加到栈的最顶层

pop()     删除栈最顶层的元素,并返回这个元素

peek()    返回最顶层的元素,并不删除它

isEmpty() 判断栈是否为空

size()    返回栈中元素的个数

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

#-*- coding:?UTF-8 -*-

__author__ = 'Administrator'

#python的list对象模拟栈的实现

class Stack:

    #模拟栈

    def __init__(self):

        self.items = []

    def isEmpty(self):

        return len(self.items)==0

    def push(self,item):

        self.items.append(item)

    def pop(self):

        return self.items.pop()

    def peek(self):

        if not self.isEmpty():

            return self.items[len(self.items)-1]

    def size(self):

        return len(self.items)

#创建一个栈对象,并加入操作方法

s = Stack()

print(s.isEmpty())

s.push(4)

s.push('DOG')

print(s.peek())

s.push(True)

print(s.size())

print(s.isEmpty())

s.push(8.4)

print(s.pop())

print(s.pop())

print(s.size())

相关推荐:《Python教程》

以上就是python有栈吗的详细内容,更多文章请关注木庄网络博客!!

相关阅读 >>

Python32位和64位有什么区别

怎么在windows下安装pip

Python如何生成随机密码?

Python模块和包的区别

Python有split函数吗

Python的单线程多任务的实现

tensorflow用Python哪个版本更好?

解析Python中executemany和序列用法教程

Python全栈工程师是什么

Python介绍嵌套 json 秒变 dataframe!

更多相关阅读请进入《Python》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...