小甲鱼课后第039讲课后题求助
我在做课后作业的时候遇到了一些问题,请各位鱼油赐教^_^!1. 定义一个栈(Stack)类,用于模拟一种具有后进先出(LIFO)特性的数据结构。至少需要有以下方法:
我的问题:__init__方法里面的start=[]的意义在哪里呢?如果要传递进去一个列表,那应该是def __init__(self,start),调用Stack类的时候Stack(start=)
答案这样给start赋初值是有什么原理在里面吗?{:5_94:}
class Stack:
def __init__(self, start=[]):
self.stack = []
for x in start:
self.push(x)
def isEmpty(self):
return not self.stack
def push(self, obj):
self.stack.append(obj)
def pop(self):
if not self.stack:
print('警告:栈为空!')
else:
return self.stack.pop()
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
其实都可以,主要是要实现定义一个栈(Stack)类,用于模拟一种具有后进先出(LIFO)特性的数据结构。 这应该属于函数部分的基础知识了,在函数定义的部分,直接在参数定义的地方给参数赋值的意思是设定一个默认值,调用该函数时,若未传入该参数,则这个参数使用默认值
也就是说,我在实例化一个Stack类时,可以不传入start参数,这时候,start参数就是默认的空列表
页:
[1]