第一天:队列和栈

对于队列和栈的初步想法//每天一点

今天是2019年的第一天,在听着时间的朋友来写下我这第一篇博客,罗胖在开头说到“做事的人,因为做事,让他们的生命处于上升期。”今天就是我做的第一次事。

那么,开始:

队列:
在我眼里是一列数组,他的排序是有意义的,当然,如果我追究他每一个数的位置,那当然很好,但是这对于程序很复杂。

举个例子有个题目

首先将第1个数删除,紧接着将第2个数放到这串数的末尾,再将第3个数删除并将第4个数再放到这串数的末尾,再将第5个数删除……直到剩下最后一个数,将最后一个数也删除。按照刚才删除的顺序,把这些删除的数连在一起就是小哈的QQ啦——摘自《啊哈算法》

这当然可以用每一次把数字列完,再运算。但是这显然很复杂,时间复杂度很高,所以我们可以进行优化,把没意义的东西去掉,这显然,每一次运算后的数组,除了头部两个数字,之后的所有数字,都是最后才用到,而且这里涉及数字的删除和最后一个数字的加入,如果用链表就太复杂了,这里很巧。

啊哈算法的作者,很厉害,他就用了一个整形变量叫head,来当计数器标记每一次开始的时候数组的第一个数字,同理,有一个tail来标记最后一个数字,每一次运算,就移动head和tail即加减他们就可以实现这题目数组的变化。

栈:
这里也同样,不过这里和队列有点不同,栈是只能在一段进进出出,其实和队列是差不多的,但是就像做数学题目,有数学归纳法,有几何法等等。这里的栈就是另外一种做法,设置一个top变量,然后进行加减,就可以进行数组的出栈和入栈。具体的例子我之后会补充。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值