上述公式单位分别是什么,例如vout的单位是v还是mv
时间: 2024-04-29 22:24:16 浏览: 20
优先队列模板类的实现:
```cpp
#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;
template <typename T>
class PriorityQueue {
private:
struct Node {
int priority;
T data;
};
int size;
int capacity;
Node* queue;
int front;
int rear;
public:
PriorityQueue(int c) {
size = 0;
capacity = c;
queue = new Node[capacity];
front = rear = -1;
}
~PriorityQueue() {
delete[] queue;
}
bool isEmpty() const {
return size == 0;
}
bool isFull() const {
return size == capacity;
}
void enqueue(int priority, const T& data) {
if (isFull()) {
cout << "Queue is full!" << endl;
return;
}
rear = (rear + 1) % capacity;
queue[rear].priority = priority;
queue[rear].data = data;
size++;
}
T dequeue() {
if (isEmpty()) {
cout << "Queue is empty!" << endl;
exit(1);
}
int maxPriority = queue[front + 1].priority;
int maxPriorityIndex = front + 1;
for (int i = front + 1; i <= rear; i++) {
if (queue[i].priority < maxPriority) {
maxPriority = queue[i].priority;
maxPriorityIndex = i;
}
}
T data = queue[maxPriorityIndex].data;
for (int i = maxPriorityIndex; i > front + 1; i--) {
queue[i].priority = queue[i - 1].priority;
queue[i].data = queue[i - 1].data;
}
front = (front + 1) % capacity;
size--;
return data;
}
T peek() const {
if (isEmpty()) {
cout << "Queue is empty!" << endl;
exit(1);
}
int maxPriority = queue[front + 1].priority;
int maxPriorityIndex = front + 1;
for (int i = front + 1; i <= rear; i++) {
if (queue[i].priority < maxPriority) {
maxPriority = queue[i].priority;
maxPriorityIndex = i;
}
}
return queue[maxPriorityIndex].data;
}
};
```
测试代码:
```cpp
struct Student {
int id;
string name;
};
int main() {
const int capacity = 10;
PriorityQueue<Student> queue1(capacity);
PriorityQueue<Student> queue2(capacity);
srand(time(NULL));
for (int i = 0; i < capacity; i++) {
Student student;
student.id = i + 1;
student.name = "Student " + to_string(i + 1);
int priority = rand() % 10 + 1;
queue1.enqueue(priority, student);
queue2.enqueue(priority, student);
}
cout << "Queue 1:" << endl;
while (!queue1.isEmpty()) {
Student student = queue1.dequeue();
cout << "Priority: " << student.id << " Data: " << student.name << endl;
}
cout << "Queue 2:" << endl;
while (!queue2.isEmpty()) {
Student student = queue2.dequeue();
cout << "Priority: " << student.id << " Data: " << student.name << endl;
}
return 0;
}
```
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)