push函数?
class Stack():def __init__(self, start=[]):
self.stack = []
for x in start:
self.push(x)
请问,这个push函数是啥意思,我查了半天没有查清楚 肯定是你没写全,贴代码还搞保密。肯定是类中还有一个push函数 你写的是一个叫做栈的数据结构,push是把输入加入栈的方法。栈主要有这些方法:
size():查看栈的大小,也就是有多少项数据;
is_empty():检查栈是否为空,空返回True,否则返回False;
pop():弹出栈顶的数据;
push():把数据添加到栈顶。
另外,不要用空列表作为默认参数
从代码上看,这是想用 Python 实现栈 数据结构,而 栈 数据结构的基本方法中 push 就是其中之一,可称为“压栈”
这个函数的作用主要是将元素压入栈中,这里你 __init__ 初始化函数进行了调用
就是将你创造栈实例对象时传入的列表,通过 for 循环压栈,将列表中一个个元素压入栈中,达到初始化栈的作用
qq1151985918 发表于 2022-5-25 16:15
肯定是你没写全,贴代码还搞保密。肯定是类中还有一个push函数
emmmm误会,没啥保密的,这是小甲鱼的课后习题,太长了,贴上来太多了怕大家不想看
你说的确实有道理,后面还有一个push函数我没注意到,init中以前练习的时候都只是对属性进行操作,没想到还能调用类中定义的方法
谢谢解惑 Twilight6 发表于 2022-5-25 21:57
从代码上看,这是想用 Python 实现栈 数据结构,而 栈 数据结构的基本方法中 push 就是其中之一,可 ...
def push(self, obj):# 入栈
print("成功入栈数据:", obj)
self.stack.append(obj)
push函数长这样;
但是我依旧不能明白__init__中为什么这里要放push函数,这里的push不是多此一举吗,直接self.stack = start不就好了吗 Jerry~Mouse 发表于 2022-5-25 23:36
def push(self, obj):# 入栈
print("成功入栈数据:", obj)
self.stack.append(obj ...
因为这样设计才符合 栈 数据结构,你直接列表赋值就没有体现压栈这个过程了
页:
[1]