zoukankan      html  css  js  c++  java
  • 萌新循环队列学习笔记

    循环队列:

    队列最简单的表示方法就是数组啊;

    用数组表示队列,那么普通的方法就是简单的搞两个下标代表队列头,队列尾,然后进队,出队,但是随着入队,出队操作的进行,会使整个队列整体向后移动,队尾指针已经移到了最后,再有元素入队就会溢出,而事实上此时队中并未真的“满员”,这种现象称为“假溢出”。

    为了解决队尾溢出而实际上数组仍然有空余空间的问题,一般在队列的顺序存储结构中采用循环队列的方式:rear 和 front 到达数组端点时,能折回到数组开始处,即相当于将数组头尾相接,想象成环状。

    当插入和删除操作的作用单元达到数组的末端后,用公式"rear"(或 front ) % 数组长度“取余运算就可以实现折返到起始单元。

    方法一:增设一个变量,记录当前队列元素个数的变量SIze,或者用一个变量Flag记录最后一次操作是入队还是出队。

    根据变量Size就可以直接判断队列是否是满还是空;根据变量Flag,就可以知道当front等于rear时是满还是空;

    方法二:少用一个元素的空间;队满的条件:” (rear+1) % 数组长度 “ 等于 front。队空的条件仍然是:rear等于front;






  • 相关阅读:
    cnpm与npm指定有什么区别?
    Node.js与VUE安装及环境配置之Windows篇
    kafka和rabbitmq对比
    .NET笔记题库(一)
    API网关的用处
    C#问答题与附解收集(三)
    Error Code: 1175
    有时间测试dism
    sublime 3103liense
    weblogic 安装和部署项目(原创)
  • 原文地址:https://www.cnblogs.com/keyboarder-zsq/p/6777524.html
Copyright © 2011-2022 走看看