zoukankan      html  css  js  c++  java
  • 队列

    队列

    是一种先进先出(FIFO)线性表。只允许在 其一端删除元素,即队头(front),只允许在其另一 端插入元素,即队尾(rear)。

     入队时需先修改入队指针(队尾指针) rear = = (rear +1)% QueueMaxSize

    出队时需要修改队头指针 front == (front +1)% QueueMaxSize

    rear 指出实际队尾元素所在的位置,front 指出实际队头元素所在位置的前一个位置,  front 指向的位置不存放数据元素.

    队列的操作判断条件:

    初始时, 队列为空, 有 front=0 rear=0

    队空: front==rear 1   约定 rear 指出实际队尾元素所在的位置, front 指出实际队头元素所在位置的前一个位置

    队满: (rear+1)%QueueMaxSize == front

    入队: (rear+1)% QueueMaxSize == front 然后修改入队指针(队尾指针) rear = (rear +1)% QueueMaxSize 最后将元素入队。

    出队:front == rear 然后修改队头指针 front = (front +1)% QueueMaxSize 最后将元素出队。

    求队长:若存储队列的数组的长度为N,则队列长度(即所含元素个数)为: (N+rear-front)%N

    队列的存储:

    队列的顺序存储:在顺序队列中插入和删除,不需要比较和移动任何元素,只需修改队尾和队首指 针,并向队尾写入元素或从队首取出元素, 时间复杂度为:O(1)

    队列的链式存储: 在链队中插入和删除,不需要比较和移动任何元素,只需修改个别相关指 针和进行结点的动态分配或回收操作 ,时间复杂度为:O(1)

    队列的应用:

  • 相关阅读:
    史上最强内网渗透知识点总结
    最全的网站渗透测试详细检测方法
    java代码审计
    信息收集
    Java Web安全之代码审计
    Bell-Lapadula和Biba的改进安全模型与应用
    浅谈Forrester零信任架构评估的7个技术维度
    CMD命令混淆高级对抗
    一篇文章带你领悟Frida的精髓(基于安卓8.1)
    svg作图
  • 原文地址:https://www.cnblogs.com/fanBlog/p/11713458.html
Copyright © 2011-2022 走看看