Jerry~Mouse 发表于 2022-5-25 14:27:58

push函数?

class Stack():
    def __init__(self, start=[]):
      self.stack = []
      for x in start:
            self.push(x)

请问,这个push函数是啥意思,我查了半天没有查清楚

qq1151985918 发表于 2022-5-25 16:15:05

肯定是你没写全,贴代码还搞保密。肯定是类中还有一个push函数

Brick_Porter 发表于 2022-5-25 21:45:03

你写的是一个叫做栈的数据结构,push是把输入加入栈的方法。栈主要有这些方法:
size():查看栈的大小,也就是有多少项数据;
is_empty():检查栈是否为空,空返回True,否则返回False;
pop():弹出栈顶的数据;
push():把数据添加到栈顶。

另外,不要用空列表作为默认参数

Twilight6 发表于 2022-5-25 21:57:38



从代码上看,这是想用 Python 实现栈 数据结构,而 栈 数据结构的基本方法中 push 就是其中之一,可称为“压栈”

这个函数的作用主要是将元素压入栈中,这里你 __init__ 初始化函数进行了调用

就是将你创造栈实例对象时传入的列表,通过 for 循环压栈,将列表中一个个元素压入栈中,达到初始化栈的作用

Jerry~Mouse 发表于 2022-5-25 23:21:56

qq1151985918 发表于 2022-5-25 16:15
肯定是你没写全,贴代码还搞保密。肯定是类中还有一个push函数

emmmm误会,没啥保密的,这是小甲鱼的课后习题,太长了,贴上来太多了怕大家不想看
你说的确实有道理,后面还有一个push函数我没注意到,init中以前练习的时候都只是对属性进行操作,没想到还能调用类中定义的方法
谢谢解惑

Jerry~Mouse 发表于 2022-5-25 23:36:31

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不就好了吗

Twilight6 发表于 2022-5-26 09:13:11

Jerry~Mouse 发表于 2022-5-25 23:36
def push(self, obj):# 入栈
       print("成功入栈数据:", obj)
       self.stack.append(obj ...



因为这样设计才符合 栈 数据结构,你直接列表赋值就没有体现压栈这个过程了

页: [1]
查看完整版本: push函数?