猫史档案馆


【教程帖】算法入门 六、队列

用户:SKQASKQA查看:3 回复:3 评论:3 创建时间:2020-05-26T21:57:27


队列,顾名思义,它与我们排队差不多,此时我们称队伍为队列。我们排队时,先进入队伍的末端入队);处理完毕后,我们就从第一个出来(出队)。那么队列也是一样,元素只能从末端入队,从第一个出队

center_image

(小声说:什么?你连第last项都不知道?第last项就是最后一项)

在队列中,通常用push表示入队,用pop表示出队。push就是“推”的意思,将元素“推”进末尾;pop则是“弹”的意思,将元素“弹”出队。怎么样,是不是很形象?

不过,一旦pop,元素就木大了吗?肯定不是。所以出队时,通常用popValue来保存元素。积木如下:

center_image

举个简简单单的例子:

输入a、b两个数,计算a*b-b+a。计算的结果可记录

center_image

(如果是kitten的话,别忘记转成数字类型,因为这是scratch,它不分字符串与数字,它会自动转换)

但是如何记录计算的结果?最简单方法就是队列了。每次说出结果前保存一下结果,下一次就可以用popValue读取了。

但是,一旦pop了,元素只会留在popValue中,不会留在队列中。所以在pop后,需要再push一次,因为这已经算是一次计算了。

这里你必须要搞清楚一点:读取的结果是最前计算的,不是上一次计算的

至于如何编写程序,每个人有每个人的算法,有的人喜欢增加一个按钮,有的人喜欢询问,有的人喜欢直接说出来。

--------------------OK--------------------

下节讲栈(可能讲不完)


回复

上一页1 页 / 共 1下一页
SKQASKQA

补充一下,Value是“值”,popValue就是pop的值。

点赞0


评论


燚卿燚卿

好难……(苦笑)

看来是时候再看一遍你的教程贴了

点赞0


评论


SKQASKQA

有个地方讲错了,pop应该是删除第一项,我和栈搞在一起了

点赞0


评论