欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

玩转循环队列:数据结构中的重要工具

最编程 2024-01-31 16:08:27
...
#pragma once #include<iostream> using namespace std; #define MAXSIZE 100 //循环队列类 class CyclicQ { private: int* data;//数组 int front;//队头指针 int rear;//队尾指针 public: //初始化 void Init() { data = new int[MAXSIZE]; front = rear = 0; } //求当前队列长度 int Getlen() { return (rear - front + MAXSIZE) % MAXSIZE; } //输出 void Output() { int len = Getlen(); cout << "队列长度:" << len << endl; if (len > 0) { cout << "队列内容:" << endl; int index = (front + 1) % MAXSIZE;//指向第一个元素 for (int i = 0; i < len; i++) { cout << data[index] << "|"; index = (index + 1) % MAXSIZE; } cout << endl; } } //入队 void EnQueue(int value) { rear = (rear + 1) % MAXSIZE; data[rear] = value; } //出队 int DeQueue() { front = (front + 1) % MAXSIZE; return data[front]; } //判空 bool isEmpty() { return(front == rear) ? true : false; } //判满 bool isFull() { return (front == ((rear + 1) % MAXSIZE)) ? true : false; } //销毁 void Destroy() { delete[]data; } //取队头元素 int GetTop() { int temp = (front + 1) % MAXSIZE; return data[temp]; } };

推荐阅读