昨日青空77 发表于 2020-11-18 17:32:55

瞬间懵了,求助

这些是啥方法,还有代码,有人帮忙解读一下吗

昨日青空77 发表于 2020-11-18 17:33:28

39讲拾遗课后题

2012277033 发表于 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=y=x.pop()后就是x=,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

昨日青空77 发表于 2020-11-19 00:48:39

2012277033 发表于 2020-11-18 17:55
栈就是一种数据类型,是先进后出的一种数据,和数组类似,只不过只能按顺序取值。
比喻起来就像是只有一个 ...

感谢,就是突然引入栈很懵
页: [1]
查看完整版本: 瞬间懵了,求助