栈跟队列的理解

相信大家对栈跟队列的理解都比较清楚      栈好比我们小时候偷东西一样 叠罗汉 翻墙过去一样 战到上面的最先过去 (例子举的不太好)满足 后进先出的原则。 队列 使我们平时经


常看到的 排队买东西 看电影等等 慢走先进先出的原则。


为什么要使用栈跟队列呢?


当需要完成一些数组 比较难完成 或者数组执行效率不高的特殊的算法是 使用它们.  比如要执行操作运算符的匹配    计算一个算式的值等等 我们就首先应该考虑到使用栈


我们首先介绍下栈的用法把:


栈指允许访问一个数据项 即最后插入的数据项 移出这个数据项后才能访问下一个数据项 栈的实现原理其实很简单     其实就是定义一个为-1的变量 保存的时候 增加这个数组


取出的时候减少这个数字 通俗的将 的时候从小往大 增加  取出的时候 从数组下标大的开始执行     就完成了先进后出的原理     例如我们要计算(2+3)*5或者匹配其中的分割符{a[b(c)]} 的时候使用是 最合适的算法


队列的用法:可以模拟很多日常生活的情况 :春节排队买车票     网络上的数据传输等等


队列的实现的时候 必须要注意的一点就是 循环队列    因为有时候当你执行删除的时候    队列的首位置不一定就会是0的位置的 所以要执行队列回执


一般情况下 插入操作的队尾指针加一后 在队尾指针所指的位置处插入新的数据。但是当队尾指针指向数组的顶端  即maxSize-1的位置的时候 在插入数据项之前


他必须回绕到数组的底端 也就是回绕到队尾指针为-1的情况  因此当队尾指针加1后 他等于0 是数组底端的下标值 最好 nItetns加1


移出操作总是由front指针得到对头数据项的值 然后将front加1 但是 如果这样做使front的值 超过数组的顶端    front就必须回绕到数组下标为0的位置上。


队列操作需要注意这2点就行了











  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值