鱼C论坛

 找回密码
 立即注册
查看: 1625|回复: 3

[已解决]瞬间懵了,求助

[复制链接]
发表于 2020-11-18 17:32:55 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
这些是啥方法,还有代码,有人帮忙解读一下吗
最佳答案
2020-11-18 17:55:21
栈就是一种数据类型,是先进后出的一种数据,和数组类似,只不过只能按顺序取值。
比喻起来就像是只有一个口的羽毛球筒,你一个一个塞进去羽毛球,要取出时,取到的肯定都是后塞进去的那个。
代码部分如下注释
#定义一个名为 Stack的类
class Stack:

        #类的初始化方法,需要提供一个参数start
        #初始化时先定义一个类的属性stack。
        #遍历传进来的start,调用本身的push方法将start的元素都放到自身的stack里面
        def __init__(self,start=[]):
                self.stack = []
                for x in start:
                        self.push(x)

        #判断栈是否为空,因为空列表用作判断时等同于False,因为 not False就时True所以当列表为空时就会返回True
        def isEmpty(self):
                return not sefl.stack
        #向栈添加元素,列表的append方法就是在数组的末尾添加上对应的值。
        def push(self,obj):
                self.stack.append(obj)
        #从栈中取出元素,因为是后进先出,所以就是要取出最后一个元素。
        #列表的pop方法就是取出列表的一个值,没传参数的情况下是默认取出最后一个,比如x=[1,2,3]y=x.pop()后就是x=[1,2],y=3
        def pop(self):
                if not self.stack:
                        print('警告:栈为空!')
                else:
                        return self.stack.pop()
        #top是取栈顶,因为是栈顶,所以每次取的都是列表最后一个元素。
        def top(self):
                if not self.stack:
                        print('警告:栈为空!')
                else:
                        return self.stack[-1]
        #栈底和栈顶相反。
        def bottom(self):
                if not self.stack:
                        print('警告:栈为空!')
                else:
                        return self.stack[0]
UP3N_MJAAG8)$8IZON9W]E5.png
a4c1eb40e5ebbf5aeb268496fada058.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2020-11-18 17:33:28 | 显示全部楼层
39讲拾遗课后题
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-11-18 17:55:21 | 显示全部楼层    本楼为最佳答案   
栈就是一种数据类型,是先进后出的一种数据,和数组类似,只不过只能按顺序取值。
比喻起来就像是只有一个口的羽毛球筒,你一个一个塞进去羽毛球,要取出时,取到的肯定都是后塞进去的那个。
代码部分如下注释
#定义一个名为 Stack的类
class Stack:

        #类的初始化方法,需要提供一个参数start
        #初始化时先定义一个类的属性stack。
        #遍历传进来的start,调用本身的push方法将start的元素都放到自身的stack里面
        def __init__(self,start=[]):
                self.stack = []
                for x in start:
                        self.push(x)

        #判断栈是否为空,因为空列表用作判断时等同于False,因为 not False就时True所以当列表为空时就会返回True
        def isEmpty(self):
                return not sefl.stack
        #向栈添加元素,列表的append方法就是在数组的末尾添加上对应的值。
        def push(self,obj):
                self.stack.append(obj)
        #从栈中取出元素,因为是后进先出,所以就是要取出最后一个元素。
        #列表的pop方法就是取出列表的一个值,没传参数的情况下是默认取出最后一个,比如x=[1,2,3]y=x.pop()后就是x=[1,2],y=3
        def pop(self):
                if not self.stack:
                        print('警告:栈为空!')
                else:
                        return self.stack.pop()
        #top是取栈顶,因为是栈顶,所以每次取的都是列表最后一个元素。
        def top(self):
                if not self.stack:
                        print('警告:栈为空!')
                else:
                        return self.stack[-1]
        #栈底和栈顶相反。
        def bottom(self):
                if not self.stack:
                        print('警告:栈为空!')
                else:
                        return self.stack[0]
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-11-19 00:48:39 From FishC Mobile | 显示全部楼层
2012277033 发表于 2020-11-18 17:55
栈就是一种数据类型,是先进后出的一种数据,和数组类似,只不过只能按顺序取值。
比喻起来就像是只有一个 ...

感谢,就是突然引入栈很懵
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-17 14:45

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表