hornety 发表于 2021-8-2 15:57:43

球球了 self.stack = [] 这里用来干嘛的

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
红字部分用来干嘛的

suchocolate 发表于 2021-8-2 20:47:59

循环输入的列表,逐个加入到栈中。

nahongyan1997 发表于 2021-8-3 16:16:10

本帖最后由 nahongyan1997 于 2021-8-3 16:18 编辑

看代码: (满意设置个最佳呦,阿里嘎都)
# 这个类其实就是为了模拟栈的运行方式而编写的,并没有什么实际性的作用
class Stack:
    def __init__(self, start=[]):
      # 这个属性就是栈本身,虽然在python中他并没有内存空间的限制
      self.stack = []
      
      # 模拟栈的运行方式将实例化类时传入的参数一个一个的压入(push)栈(self.stack)中,在实际使用中与 self.stack = start 作用是相同的
      for x in start:
            self.push(x)

    def isEmpty(self):
      return not self.stack
   
    def push(self, obj):
      self.stack.append(obj)
   
    # 弹栈操作(pop)
    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
      

bravsheng 发表于 2021-8-4 14:29:44

本帖最后由 bravsheng 于 2021-8-4 14:31 编辑

nahongyan1997 发表于 2021-8-3 16:16
看代码: (满意设置个最佳呦,阿里嘎都)

噢,明白了!   原来是为了模拟栈的运行方式才这么写的!
你的回答解决我的疑惑!我也刚发帖询问,真巧又看到这篇贴子。
(我一开始想到是 self.stack = start,但看了答案循环压入的操作有些不理解了。)

nahongyan1997 发表于 2021-8-4 15:59:47

bravsheng 发表于 2021-8-4 14:29
噢,明白了!   原来是为了模拟栈的运行方式才这么写的!
你的回答解决我的疑惑!我也刚发帖询问, ...

满意给个最佳欧
页: [1]
查看完整版本: 球球了 self.stack = [] 这里用来干嘛的