瞬间懵了,求助
这些是啥方法,还有代码,有人帮忙解读一下吗 39讲拾遗课后题 栈就是一种数据类型,是先进后出的一种数据,和数组类似,只不过只能按顺序取值。比喻起来就像是只有一个口的羽毛球筒,你一个一个塞进去羽毛球,要取出时,取到的肯定都是后塞进去的那个。
代码部分如下注释
#定义一个名为 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
2012277033 发表于 2020-11-18 17:55
栈就是一种数据类型,是先进后出的一种数据,和数组类似,只不过只能按顺序取值。
比喻起来就像是只有一个 ...
感谢,就是突然引入栈很懵
页:
[1]