数据结构——顺序队列的C++实现
来源:互联网 发布:java发送socket请求 编辑:程序博客网 时间:2024/05/24 04:28
peSqQueue.cpp
#include "peSqQueue.h"typedef int Statue;#define SQQUEUE_STATUE_SUCCESS0#define SQQUEUE_STATUE_ERROR1 template<class T> class peSqQueue{public:peSqQueue(int size);~peSqQueue(void);T* data;int QueueSize;//队列最大长度int front;//头指针int rear;//尾指针int GetQueueLen(void);Statue Insert(T e);Statue Delete(void);Statue Delete(T* e);};template<class T>peSqQueue<T>::peSqQueue(int size){data = new T[size];front = 0;rear = 0;QueueSize = size;}template<class T>peSqQueue<T>::~peSqQueue(void){delete[] data;}template<class T>int peSqQueue<T>::GetQueueLen(void){return ((rear - front + QueueSize) % QueueSize);}template<class T>Statue peSqQueue<T>::Insert(T e){if(((rear + 1) % QueueSize) == front){return SQQUEUE_STATUE_ERROR;}//((rear + 1) % QueueSize) == frontdata[rear] = e;rear = (rear + 1) % QueueSize;return SQQUEUE_STATUE_SUCCESS;}template<class T>Statue peSqQueue<T>::Delete(void){if(front == rear){return SQQUEUE_STATUE_ERROR;}//front == rearfront = (front + 1) % QueueSize;return SQQUEUE_STATUE_SUCCESS;}template<class T>Statue peSqQueue<T>::Delete(T* e){if(front == rear){return SQQUEUE_STATUE_ERROR;}//front == rear*e = data[front];front = (front + 1) % QueueSize;return SQQUEUE_STATUE_SUCCESS;}Main.cpp
#include <iostream> #include "peSqQueue.cpp"using namespace std; int main() { peSqQueue<int> Squeue(11);Squeue.Insert(1);Squeue.Insert(3);Squeue.Insert(5);Squeue.Insert(7);Squeue.Insert(9);Squeue.Insert(11);Squeue.Insert(13);Squeue.Insert(15);Squeue.Insert(17);Squeue.Insert(19);Squeue.Delete();Squeue.Delete();Squeue.Delete(); int len = Squeue.GetQueueLen();cout << "the length of SqQueue:" << len << endl;cout << "Printf the SqQueue:" << endl;if(Squeue.rear < Squeue.front){for(int i = Squeue.front; i < len; ++i){cout << Squeue.data[i] << endl;}//ifor(int j = 0; j < Squeue.rear; ++j){cout << Squeue.data[j] << endl;}//j}//Squeue.rear < Squeue.frontelse{for(int i = Squeue.front; i < Squeue.rear; ++i){cout << Squeue.data[i] << endl;}//i}system("pause"); return 0; }
程序运行结果:
0 0
- 【数据结构】顺序队列的实现(c++)
- 数据结构——顺序队列的C++实现
- 数据结构---队列的顺序实现
- (C语言队列的顺序实现(数据结构十)
- 数据结构Java实现——②队列--->队列的“奇葩”一循环顺序队列
- C++——数据结构之 顺序队列 链式队列?
- 数据结构---队列顺序表c实现
- C语言数据结构-顺序队列-数组实现
- 数据结构-队列-顺序表实现-C语言
- 数据结构(5):循环队列——队列的顺序表示和实现
- 数据结构(C实现)------- 顺序队列(非循环队列)
- 数据结构---C语言之队列的顺序表示和实现(循环队列)
- 数据结构之队列的顺序实现
- JAVA数据结构之顺序队列的实现
- 数据结构基础【07】队列的顺序实现
- 【数据结构】循环队列的顺序实现
- 数据结构——顺序队列
- 数据结构——队列的链式实现(C语言)
- Java 循环嵌套问题
- Candy
- BFS 3071. Number Game
- 【C++】处理CSDN博文源码
- CALayer用法
- 数据结构——顺序队列的C++实现
- GZIPOutputStream 数据压缩问题
- java中类与类关系,UML类图关系,设计模式
- HDOJ 题目1856More is better(并查集)
- C++ primer 第五版 中文版 9.2.7 节练习
- java基础巩固系列(五):ArrayList与HashSet的比较,以及HashCode分析
- js操作dom节点
- Trie树
- ftp基础知识(一)