分别建立queue.h和主函数实现该功能
时间: 2024-02-27 16:56:44 浏览: 24
好的,以下是queue.h的代码实现:
```cpp
#ifndef QUEUE_H
#define QUEUE_H
#include <iostream>
using namespace std;
template <typename T>
class Queue {
private:
T* data;
int front, rear, capacity, count;
public:
Queue(int capacity) {
this->capacity = capacity;
data = new T[capacity];
front = rear = count = 0;
}
~Queue() {
delete [] data;
}
bool isEmpty() {
return count == 0;
}
bool isFull() {
return count == capacity;
}
void enqueue(T element) {
if (isFull()) {
cout << "Queue is full. Cannot enqueue." << endl;
return;
}
data[rear] = element;
rear = (rear + 1) % capacity;
count++;
}
T dequeue() {
if (isEmpty()) {
cout << "Queue is empty. Cannot dequeue." << endl;
return T();
}
T element = data[front];
front = (front + 1) % capacity;
count--;
return element;
}
int size() {
return count;
}
void print() {
if (isEmpty()) {
cout << "Queue is empty." << endl;
return;
}
cout << "Queue: ";
int i = front;
while (i != rear) {
cout << data[i] << " ";
i = (i + 1) % capacity;
}
cout << endl;
}
};
#endif
```
接下来是主函数的代码实现:
```cpp
#include "queue.h"
int main() {
Queue<int> q(5);
q.enqueue(1);
q.enqueue(2);
q.enqueue(3);
q.enqueue(4);
q.enqueue(5);
q.print();
int deleted = q.dequeue();
cout << "Deleted element: " << deleted << endl;
cout << "Current size: " << q.size() << endl;
q.print();
return 0;
}
```
注意需要在主函数中包含queue.h头文件,然后就可以使用Queue<int>类模板创建一个队列并进行操作了。