一分钟算法——栈与队列

 

栈——先进后出队列——先进先出...

栈与队列
为了讲之后的宽度优先搜索,我想要先讲讲队列。它们都是非常“实用”的数据结构,可以帮助我们在算法世界中做许多事情。

,好比一口井,(如下图)我们向井底放了1,再放2。此时取要取最顶端的数,肯定是2,最后放的。给它取个简单好记的名字,就是“先进后出”,意思是先进的(例如1),要最后出。而且,下面的数不可能比上面的数先出来。
队列,好比一个滑梯,我们向滑梯口放1,随后放2,它们都按次序且以相同的速度滑了下去。每次取都是从滑梯的末端取,肯定是1,1 取出后才能取 2。栈是“先进后出”,队列就是“先进先出”,意思和栈一样。不过,上述队列只是基本的,还有一种是有顺序的,叫“优先队列”。每次并不是插在末位,而是插在中间,一定是以顺序排好的。那如何做到插入是只用 log 的时间呢?用堆(←←点此查看 一分钟算法——堆)就可以了。

下面是网上的一段有关滑梯的有趣视频,大家可以看看,是不是队列呢?



下图是栈和队列的示意图,接下来我们讲讲栈和队列的具体应用。栈其实就是一分钟算法 ——递归
一分钟算法——堆


    关注 无忧公主的数学时间


微信扫一扫关注公众号

0 个评论

要回复文章请先登录注册