全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

C++数据结构之实现循环顺序队列

数据结构–用C++实现循环顺序队列

  • 队列的操作特性:先进先出
  • 队列中元素具有相同类型
  • 相邻元素具有前驱和后继关系
  • 设置队头、队尾两个指针,以改进出队的时间性能

约定:队头指针front指向队头元素的前一个位置,队尾指针rear指向队尾元素

为了解决假溢出,我们将存储队列的数组头尾相接,从而产生了循环队列。

如何判断循环队列队空?

队空:front=rear

如何盘对循环队列堆满?

队满:front=rear

那么问题就来了,队空和队满的判断条件相同,为了避免队满时产生队空的判断或者相反,我们需要修改队满条件使得队空和堆满的判定条件分开。
方法:浪费一个元素空间,队满时数组只有一个空闲单元。队满条件:(rear+1)%QueueSize==front

下面是实现代码:

文件CirQueue.h

#ifndef CirQueue_byNim
#define CirQueue_byNim

#include<iostream>
using namespace std;

const int QueueSize=100;  //循环队列的最大存储空间 
template <class T>
class CirQueue
{
  private:
    T *data;  //存储数据的数组 
    int front,rear; //队头队尾指针 
  public:
    CirQueue()
    {
      data=new T[QueueSize];
      front=rear=0;
    }
    ~CirQueue()
    {
      delete []data;
      front=rear=0;
    }
    void EnQueue(T e)
    {
      if((rear+1)%QueueSize==front)  //队满条件 
        throw "上溢";
      rear=(rear+1)%QueueSize;
      data[rear]=e;
    }
    T DeQueue()
    {
      if(rear==front)//队空条件 
        throw "下溢";
      front=(front+1)%QueueSize;
      return data[front];
    }
    T GetQueue()
    {
      if(rear==front)//队空条件 
        throw "下溢";
      return data[(front+1)%QueueSize];
    }
    bool empty()
    {
      if(front==rear) //队空条件:front==rear 
        return true;
      return false;
    }
};

#endif

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!


# C++数据结构之实现循环顺序队列  # C++实现循环顺序队列  # C++数据结构循环顺序队列实例代码  # C语言实现顺序循环队列实例  # 上溢  # 来了  # 数据结构  # 希望能  # 只有一个  # 谢谢大家  # 为了避免  # 如何判断  # 产生了  # brush  # pre  # class  # CirQueue  # define  # include  # CirQueue_byNim  # cpp  # ifndef  # rear  # li 


相关文章: 公众号网站制作网页,微信公众号怎么制作?  制作无缝贴图网站有哪些,3dmax无缝贴图怎么调?  网站制作免费,什么网站能看正片电影?  如何在新浪SAE免费搭建个人博客?  如何在云虚拟主机上快速搭建个人网站?  香港服务器如何优化才能显著提升网站加载速度?  简历在线制作网站免费版,如何创建个人简历?  建站中国必看指南:CMS建站系统+手机网站搭建核心技巧解析  建站中国官网:模板定制+SEO优化+建站流程一站式指南  高性能网站服务器部署指南:稳定运行与安全配置优化方案  ,有什么在线背英语单词效率比较高的网站?  北京网站制作网页,网站升级改版需要多久?  如何选择PHP开源工具快速搭建网站?  建站主机选购指南:核心配置与性价比推荐解析  免费制作海报的网站,哪位做平面的朋友告诉我用什么软件做海报比较好?ps还是cd还是ai这几个软件我都会些我是做网页的?  建站之星安装后如何配置SEO及设计样式?  建站之星如何快速解决建站难题?  建站之星如何实现PC+手机+微信网站五合一建站?  建站之星如何一键生成手机站?  企业宣传片制作网站有哪些,传媒公司怎么找企业宣传片项目?  无锡制作网站公司有哪些,无锡优八网络科技有限公司介绍?  已有域名建站全流程解析:网站搭建步骤与建站工具选择  我的世界制作壁纸网站下载,手机怎么换我的世界壁纸?  微信小程序制作网站有哪些,微信小程序需要做网站吗?  关于BootStrap modal 在IOS9中不能弹出的解决方法(IOS 9 bootstrap modal ios 9 noticework)  高性价比服务器租赁——企业级配置与24小时运维服务  想学网站制作怎么学,建立一个网站要花费多少?  如何确保FTP站点访问权限与数据传输安全?  制作网站公司那家好,网络公司是做什么的?  如何在橙子建站上传落地页?操作指南详解  寿县云建站:智能SEO优化与多行业模板快速上线指南  浅谈Javascript中的Label语句  如何在Golang中实现微服务服务拆分_Golang微服务拆分与接口管理方法  如何确保西部建站助手FTP传输的安全性?  移民网站制作流程,怎么看加拿大移民官网?    如何选择适配移动端的WAP自助建站平台?  深圳网站制作培训,深圳哪些招聘网站比较好?  大连 网站制作,大连天途有线官网?  小捣蛋自助建站系统:数据分析与安全设置双核驱动网站优化  香港服务器选型指南:免备案配置与高效建站方案解析  建站VPS推荐:2025年高性能服务器配置指南  如何批量查询域名的建站时间记录?  网站视频制作书签怎么做,ie浏览器怎么将网站固定在书签工具栏?  c++怎么使用类型萃取type_traits_c++ 模板元编程类型判断【方法】  湖南网站制作公司,湖南上善若水科技有限公司做什么的?  免费视频制作网站,更新又快又好的免费电影网站?  实现点击下箭头变上箭头来回切换的两种方法【推荐】  简单实现Android验证码  建站之星伪静态规则如何正确配置? 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。