zoukankan      html  css  js  c++  java
  • 第十周学习

    队列,和栈一样,也是一种对数据的"存"和"取"有严格要求的线性存储结构。

    与栈结构不同的是,队列的两端都"开口",要求数据只能从一端进,从另一端出,如图 1 所示:

    avatar
    图 1 队列存储结构
    通常,称进数据的一端为 "队尾",出数据的一端为 "队头",数据元素进队列的过程称为 "入队",出队列的过程称为 "出队"。

    不仅如此,队列中数据的进出要遵循 "先进先出" 的原则,即最先进队列的数据元素,同样要最先出队列。拿图 1 中的队列来说,从数据在队列中的存储状态可以分析出,元素 1 最先进队,其次是元素 2,最后是元素 3。此时如果将元素 3 出队,根据队列 "先进先出" 的特点,元素 1 要先出队列,元素 2 再出队列,最后才轮到元素 3 出队列。
    栈和队列不要混淆,栈结构是一端封口,特点是"先进后出";而队列的两端全是开口,特点是"先进先出"。

    因此,数据从表的一端进,从另一端出,且遵循 "先进先出" 原则的线性存储结构就是队列。
    队列的实现
    队列存储结构的实现有以下两种方式:
    顺序队列:在顺序表的基础上实现的队列结构;
    链队列:在链表的基础上实现的队列结构;

    两者的区别仅是顺序表和链表的区别,即在实际的物理空间中,数据集中存储的队列是顺序队列,分散存储的队列是链队列。
    队列的实际应用
    实际生活中,队列的应用随处可见,比如排队买 XXX、医院的挂号系统等,采用的都是队列的结构。

    拿排队买票来说,所有的人排成一队,先到者排的就靠前,后到者只能从队尾排队等待,队中的每个人都必须等到自己前面的所有人全部买票成功并从队头出队后,才轮到自己买票。这就不是典型的队列结构吗?

  • 相关阅读:
    4月份学习计划
    windows下下载安装python、 pip、nose
    Windows下怎么搭建Python+Selenium的自动化环境
    pthon之异常、文件练习题
    python 元组 字符串 字典 列表嵌套练习题1
    硬件访问服务AIDL JNI 方式
    Android 加载图片优化(二) LruCache DiskLruCache
    Android 加载图片优化(一)
    ubuntu 下 4412烧写SuperBoot
    metro WCF
  • 原文地址:https://www.cnblogs.com/123jjl/p/12864758.html
Copyright © 2011-2022 走看看