zoukankan      html  css  js  c++  java
  • 大话数据结构 -04-3 队列

    1. 定义(也是一种线性表)

    2. 抽象数据类型

    3. 循环队列

    (1)顺序存储的不足

    设一个队列的元素数为n,为其建立一个大于n的数组,在队头删除元素(下表0),在队为添加元素(下标最大处),此时会引起两个问题:

    「1」每次在队头删除元素,若要保证下标始终为0,需要每删一个元素,数组所有元素整体向前移动。时间复杂度为O(0)

    「2」 若每次在队头删除元素,不向前移动剩余元素,则在队尾添加元素至数组的最后一位时,元素不能再添加(产生数组越界错误),但实际上队列的前部还有存储单元。这种现象称为假溢出。

    因此提出循环队列

    (2)循环队列定义

    「1」解决假溢出的办法是:后面满了,就再从头开始,即头尾相接的循环。这种顺序存储结构称为循环队列。

    「2」3.1.2 中提出的问题:

    「3」定义队列空:rear==front

    「4」定义u队列满(两种方法):

    method1:由于队列满也是rear==front,因此当队列中rear==front时,无法确定是队列空还是满

    method2:(队列满时还有一个空余单元)常用

    即如下情况,均已队满:

    不允许出现:

    「5」第二种情况下:设队列的最大尺寸是QueueSize

    (3)循环队列代码:

    4. 队列的链式存储结构(链队列)

    「1」链队列的链式结构:

    「2」入队操作(在链表结尾插入结点)

    「3」出队操作

     

  • 相关阅读:
    Vmware虚拟机的单用户模式
    Xshell密钥认证
    PuTTY密钥认证
    CentOS 7在NAT模式下配置静态IP
    使用OllyDbg破解EasyCrackMe
    2017 计蒜之道 初赛 第五场 A. UCloud 机房的网络搭建
    2017 计蒜之道 初赛 第五场 A. UCloud 机房的网络搭建
    Kafka常用命令
    选择器和层叠
    语义化
  • 原文地址:https://www.cnblogs.com/GuoXinxin/p/10010109.html
Copyright © 2011-2022 走看看