平时编程里经常需要用到数据结构,比如  栈和队列 等,  为了避免每次用到都需要重新编写的麻烦现将  C++ 编写的 数据结构 队列  记录下来,以备后用。

将 数据结构  队列  用头文件的形式写成,方便调用。

  1. #ifndef QUEUE_CLASS
  2. #define QUEUE_CLASS
  3.  
  4. #include<iostream>
  5. #include<cstdlib>
  6. using namespace std;
  7. const int MaxQSize=;
  8.  
  9. template <class T>
  10. class Queue
  11. {
  12. private:
  13. int front, rear, count;
  14. T qlist[MaxQSize];
  15. public:
  16. Queue(void);
  17.  
  18. void QInsert(const T &item);
  19. T QDelete(void);
  20. void ClearQueue(void);
  21. T QFront(void) const;
  22.  
  23. int QLength(void) const;
  24. int QEmpty(void) const;
  25. int QFull(void) const;
  26. };
  27.  
  28. //默认构造函数
  29. template <class T>
  30. Queue<T>::Queue(void):front(), rear(), count()
  31. {}
  32.  
  33. template <class T>
  34. void Queue<T>::QInsert(const T &item)
  35. {
  36. if(count==MaxQSize)
  37. {
  38. cerr<<"Queue overflow!"<<endl;
  39. exit();
  40. }
  41. count++;
  42. qlist[rear]=item;
  43. rear=(rear+)%MaxQSize;
  44. }
  45.  
  46. template <class T>
  47. T Queue<T>::QDelete(void)
  48. {
  49. T temp;
  50. if(count==)
  51. {
  52. cerr<<"Deleting from an empty queue!"<<endl;
  53. exit();
  54. }
  55. count--;
  56. temp=qlist[front];
  57. front=(front+)%MaxQSize;
  58.  
  59. return temp;
  60. }
  61.  
  62. template <class T>
  63. T Queue<T>::QFront(void) const
  64. {
  65. return qlist[front];
  66. }
  67.  
  68. template <class T>
  69. int Queue<T>::QLength(void) const
  70. {
  71. return count;
  72. }
  73.  
  74. template <class T>
  75. int Queue<T>::QEmpty(void) const
  76. {
  77. return count==;
  78. }
  79.  
  80. template <class T>
  81. int Queue<T>::QFull(void) const
  82. {
  83. return count==MaxQSize;
  84. }
  85.  
  86. template <class T>
  87. void Queue<T>::ClearQueue(void)
  88. {
  89. front=;
  90. rear=;
  91. count=;
  92. }
  93. #endif

具体的调用形式:

运行结果:

C++ 泛型 编写的 数据结构 队列的更多相关文章

  1. C++ 泛型 编写的 数据结构 栈

    平时编程里经常需要用到数据结构,比如  栈和队列 等,  为了避免每次用到都需要重新编写的麻烦现将  C++ 编写的 数据结构   栈   记录下来,以备后用. 将 数据结构  栈   用头文件的形式 ...

  2. (超详细)动手编写 — 栈、队列 ( Java实现 )

    目录 前言 栈 概念 栈的设计 编码实现 小结 队列 概念 队列的设计 编码实现 双端队列 概念 设计 编码 循环队列 循环队列 循环双端队列 声明 前言 栈 概念 什么是栈? **栈 **:是一种特 ...

  3. java 数据结构 队列的实现

    java 数据结构队列的代码实现,可以简单的进行入队列和出队列的操作 /** * java数据结构之队列的实现 * 2016/4/27 **/ package cn.Link; import java ...

  4. C语言数据结构-队列的实现-初始化、销毁、清空、长度、队列头元素、插入、删除、显示操作

    1.数据结构-队列的实现-C语言 //队列的存储结构 #define MAXSIZE 100 typedef struct { int* base; //基地址 int _front; //头指针 i ...

  5. java数据结构——队列、循环队列(Queue)

    每天进步一点点,坚持就是成功. 1.队列 /** * 人无完人,如有bug,还请斧正 * 继续学习Java数据结构————队列(列队) * 队列和栈一样,都是使用数组,但是队列多了一个队头,队头访问数 ...

  6. [从今天开始修炼数据结构]队列、循环队列、PriorityQueue的原理及实现

    [从今天开始修炼数据结构]基本概念 [从今天开始修炼数据结构]线性表及其实现以及实现有Itertor的ArrayList和LinkedList [从今天开始修炼数据结构]栈.斐波那契数列.逆波兰四则运 ...

  7. (js描述的)数据结构[队列结构,优先级队列](3)

    (js描述的)数据结构[队列结构](3) 一.队列结构的特点: 1.基于数组来实现,的一种受限的线性结构. 2.只允许在表头进行删除操作,在表尾进行插入操作. 3.先进先出(FIFO) 二.队列的一些 ...

  8. 数据结构--队列(Java实现)

    数据结构--队列(Java实现) 博客说明 文章所涉及的资料来自互联网整理和个人总结,意在于个人学习和经验汇总,如有什么地方侵权,请联系本人删除,谢谢! 简介 队列是一种特殊的线性表,特殊之处在于它只 ...

  9. 数据结构--队列之C数组实现

    队列是一种限定操作的线性表,它只能在表的一段插入,另外一段取出.所以也称为先进先出数据结构(FIFO---First In First Out) C代码如下: #include<stdio.h& ...

随机推荐

  1. python获取文件扩展名的方法

    主要介绍了python获取文件扩展名的方法,涉及Python针对文件路径的相关操作技巧 import os.path def file_extension(path): ] print file_ex ...

  2. Oracle 千万级别数据查询优化

    说明:平时很少接触到大数据分页,今天有兴趣在数据库插入1000万条数据进行测试,经过查询相关资料得到如下说明:笔者在工作中有一上百万条记录的表,在jsp页面中需对该表进行分页显示,便考虑用rownum ...

  3. C#复制数据到剪切板

    C#复制数据到剪切板 1. 复制固定的数据到剪切板 Clipboard.SetText("123456"); 于是123456就已经复制到剪切板中了,无论在任何地方粘贴都会出现‘1 ...

  4. crond 的注意点

    本来在控制台调试的好好的程序,一通过crond运行, 就执行不了. 一般需要注意: 1) 环境变量 当前目录 会变成用户的Home 2)  /var/log/messages 可以看出 crond 调 ...

  5. Eclipse 中 SDK无法更新---解决方法

    在SDK Manager -> tools -> options中: HTTP Proxy Server: mirrors.neusoft.edu.cn HTTP Proxy Port: ...

  6. C#实现在应用程序间发送消息的方法示例

    本文实例讲述了C#实现在应用程序间发送消息的方法.分享给大家供大家参考,具体如下: 首先建立两个C#应用程序项目. 第一个项目包含一个Windows Form(Form1),在Form1上有一个But ...

  7. PyQt5-GUI生成随机生成小工具

    自己修改了代码:实现了自动生成SSN,手机号和姓名的功能 import sys from PyQt5.QtGui import * from PyQt5.QtWidgets import * from ...

  8. mtime 的具体解释

    find . -mtime +0 # find files modified greater than 24 hours ago find . -mtime 0 # find files modifi ...

  9. docker添加国内仓库安装iredmail

    centos 7: 1.yum install docker or yum update docker sudo tee /etc/docker/daemon.json <<-'EOF'{ ...

  10. ~递归递归(FBI树--蓝桥)

    1220: FBI树 [递归] 时间限制: 1 Sec 内存限制: 128 MB 提交: 5 解决: 4 状态 题目描述 我们可以把由“0”和“1”组成的字符串分为三类:全“0”串称为B串,全“1”串 ...