初讲队列

    线性表是所有元素排成一列的数据结构,而队列与栈是其中稍微特殊的几个,记住是稍微,稍微的意思是它们不那么难。
    队列是一中特殊的线性表,只允许在表的前端front进行删除操作,而在表的后端进行插入操作。队列中没有元素时为空列,这就像体操大赛,每个班按照班次站好,先是一班走操场,转一圈,喊一圈,然后站到最后一个班XX班后面,注意规则限定它只能这样,你可以问为什么,校长会告诉你,不按照次序整个操场会乱套。这个就是队列的思想。
    你当然可以选择另外一套规则啦,1到XX班按次序进入操场,但是这个时候校长良心发现,要下来跟大家同甘共苦,站在了1班的旁边,这个时候只能由进口出去了,而靠近最靠近进口的就是最后进来的XX班,你可能问为什么操场要有进口,因为这草坪是人工草坪,被围栏围住了,只有进口与出口,但是外面的表演的跑道没有围住。你理解了这个代表你已经把栈的基础思想也想透了。
    其实这都是些游戏规则。具体的规则则是;
  1、初始化队列。 也就是每个班在校运会之前,穿上校服或者班服。
  2、入队列。这就是进操场的过程啦。
  3、出队列。表演咯。
  4、判断队列是否为空。校长方面的事,好给所有班打分,我们自己也要看着点,防别的班跑了。
  5、判断是否满队。看有没有冒充进来骗得大赛的奖励。
    要执行这些规则当然要有裁判啦,裁判可不是你,但是你可以叫裁判来,由他们控制整个校运会。他们有自己的名字。
    push()将一个元素置入queue中。
    front()返回queue内下一个元素。
    back()返回queue中最后一个元素。
    pop()移除queue中的一个元素。
   下面我们来玩一玩纸牌游戏,有堆叠好的纸牌,把第一张扔掉,下一张作为第一章的抽出来放到最后,问纸牌扔出去的次序。
    输入    7
    输出    5 7     
    代码详解:
#include
#include //向校长申请裁判团
using namespace std;
queue q;  //定义队列类型,可为整型,浮点型,指针类型//

int main()
{
   int n;
scanf("%d",&n);
for(int i=0;i
while(!q.empty())//当队列非空
{
printf("%d  ",&q.front());//打印首元素
q.pop();//抛弃队首元素
q.push(q.front());//把队首元素加入队尾
q.pop();//抛弃队首元素
}
return 0;
}
你能把这段代码再说成一个故事么,当然栈的思想也差不多,就像后面说的,校长庞大的身躯堵住了一边的出口,就只能由入口出了。不过你得换套#include的游戏规则,这些是容器库里有的,什么是容器,你可以自己了解一下,三大类容器都可以了解,顺序容器,关联容器,容器适配器。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值