鱼C论坛

 找回密码
 立即注册
查看: 1220|回复: 3

[已解决]瞬间懵了,求助

[复制链接]
发表于 2020-11-18 17:32:55 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
这些是啥方法,还有代码,有人帮忙解读一下吗
最佳答案
2020-11-18 17:55:21
栈就是一种数据类型,是先进后出的一种数据,和数组类似,只不过只能按顺序取值。
比喻起来就像是只有一个口的羽毛球筒,你一个一个塞进去羽毛球,要取出时,取到的肯定都是后塞进去的那个。
代码部分如下注释
  1. #定义一个名为 Stack的类
  2. class Stack:

  3.         #类的初始化方法,需要提供一个参数start
  4.         #初始化时先定义一个类的属性stack。
  5.         #遍历传进来的start,调用本身的push方法将start的元素都放到自身的stack里面
  6.         def __init__(self,start=[]):
  7.                 self.stack = []
  8.                 for x in start:
  9.                         self.push(x)

  10.         #判断栈是否为空,因为空列表用作判断时等同于False,因为 not False就时True所以当列表为空时就会返回True
  11.         def isEmpty(self):
  12.                 return not sefl.stack
  13.         #向栈添加元素,列表的append方法就是在数组的末尾添加上对应的值。
  14.         def push(self,obj):
  15.                 self.stack.append(obj)
  16.         #从栈中取出元素,因为是后进先出,所以就是要取出最后一个元素。
  17.         #列表的pop方法就是取出列表的一个值,没传参数的情况下是默认取出最后一个,比如x=[1,2,3]y=x.pop()后就是x=[1,2],y=3
  18.         def pop(self):
  19.                 if not self.stack:
  20.                         print('警告:栈为空!')
  21.                 else:
  22.                         return self.stack.pop()
  23.         #top是取栈顶,因为是栈顶,所以每次取的都是列表最后一个元素。
  24.         def top(self):
  25.                 if not self.stack:
  26.                         print('警告:栈为空!')
  27.                 else:
  28.                         return self.stack[-1]
  29.         #栈底和栈顶相反。
  30.         def bottom(self):
  31.                 if not self.stack:
  32.                         print('警告:栈为空!')
  33.                 else:
  34.                         return self.stack[0]
复制代码
UP3N_MJAAG8)$8IZON9W]E5.png
a4c1eb40e5ebbf5aeb268496fada058.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2020-11-18 17:33:28 | 显示全部楼层
39讲拾遗课后题
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-11-18 17:55:21 | 显示全部楼层    本楼为最佳答案   
栈就是一种数据类型,是先进后出的一种数据,和数组类似,只不过只能按顺序取值。
比喻起来就像是只有一个口的羽毛球筒,你一个一个塞进去羽毛球,要取出时,取到的肯定都是后塞进去的那个。
代码部分如下注释
  1. #定义一个名为 Stack的类
  2. class Stack:

  3.         #类的初始化方法,需要提供一个参数start
  4.         #初始化时先定义一个类的属性stack。
  5.         #遍历传进来的start,调用本身的push方法将start的元素都放到自身的stack里面
  6.         def __init__(self,start=[]):
  7.                 self.stack = []
  8.                 for x in start:
  9.                         self.push(x)

  10.         #判断栈是否为空,因为空列表用作判断时等同于False,因为 not False就时True所以当列表为空时就会返回True
  11.         def isEmpty(self):
  12.                 return not sefl.stack
  13.         #向栈添加元素,列表的append方法就是在数组的末尾添加上对应的值。
  14.         def push(self,obj):
  15.                 self.stack.append(obj)
  16.         #从栈中取出元素,因为是后进先出,所以就是要取出最后一个元素。
  17.         #列表的pop方法就是取出列表的一个值,没传参数的情况下是默认取出最后一个,比如x=[1,2,3]y=x.pop()后就是x=[1,2],y=3
  18.         def pop(self):
  19.                 if not self.stack:
  20.                         print('警告:栈为空!')
  21.                 else:
  22.                         return self.stack.pop()
  23.         #top是取栈顶,因为是栈顶,所以每次取的都是列表最后一个元素。
  24.         def top(self):
  25.                 if not self.stack:
  26.                         print('警告:栈为空!')
  27.                 else:
  28.                         return self.stack[-1]
  29.         #栈底和栈顶相反。
  30.         def bottom(self):
  31.                 if not self.stack:
  32.                         print('警告:栈为空!')
  33.                 else:
  34.                         return self.stack[0]
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-11-19 00:48:39 From FishC Mobile | 显示全部楼层
2012277033 发表于 2020-11-18 17:55
栈就是一种数据类型,是先进后出的一种数据,和数组类似,只不过只能按顺序取值。
比喻起来就像是只有一个 ...

感谢,就是突然引入栈很懵
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-5-1 09:06

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表