以下是一个简单的C++链式队列的示例代码:
C++
#include <iostream>
class Node {
public:
int data;
Node* next;
Node(int value) {
data = value;
next = nullptr;
}
};
class Queue {
private:
Node* front;
Node* rear;
public:
Queue() {
front = nullptr;
rear = nullptr;
}
~Queue() {
while (front != nullptr) {
Node* temp = front;
front = front->next;
delete temp;
}
}
bool isEmpty() {
return front == nullptr;
}
void enqueue(int value) {
Node* newNode = new Node(value);
if (isEmpty()) {
front = newNode;
rear = newNode;
} else {
rear->next = newNode;
rear = newNode;
}
}
void dequeue() {
if (isEmpty()) {
std::cout << "Queue is empty. Cannot dequeue." << std::endl;
return;
}
Node* temp = front;
front = front->next;
delete temp;
}
int getFront() {
if (isEmpty()) {
std::cout << "Queue is empty." << std::endl;
return -1; // You can choose a different way to handle this case
}
return front->data;
}
};
int&正版资料免费资料大全下载链接 nbsp;main() {
Queue queue;
queue.enqueue(10);
queue.enqueue(20);
queue.enqueue(30);
std::cout << "Front element: " << queue.getFront() << std::endl;
queue.dequeue();
std::cout << "Front element after dequeue: " << queue.getFront() << std::endl;
return 0;
}
这是一个简单的链式队列实现,其中 2025年正版资料免费025期 类表示队列中的节点, 类表示链式队列。可以根据需要进行修改和扩展。记得在使用完毕后释放内存,这里在队列的析构函数中释放了所有节点的内存。
以下是使用结构体实现的C++链式队列示例代码:
C++
#include <iostream>
struct Node {
int data;
Node* next;
Node(int value) {
data = value;
next = nullptr;
}
};
struct Queue {
Node* front;
Node* rear;
Queue() {
front = nullptr;
rear = nullptr;
}
~Queue() {
while (front != nullptr) {
Node* temp = front;
front = front->next;
delete temp;
}
}
bool isEmpty() {
return front == nullptr;
}
void enqueue(int value) {
Node* newNode = new Node(value);
if (isEmpty()) {
front = newNode;
rear = newNode;
} else {
rear->next = newNode;
rear = newNode;
}
}
void dequeue() {
if (isEmpty()) {
std::cout << "Queue is empty. Cannot dequeue." << std::endl;
return;
}
Node* temp = front;
front = front->next;
delete temp;
}
int getFront() {
if (isEmpty()) {
std::cout << "Queue is empty." << std::endl;
return -1; // You can choose a different way to handle this case
}
return front->data;
}
};
int main() {
Queue queue;
queue.enqueue(10);
queue.enqueue(20);
queue.enqueue(30);
std::cout << "Front element: " << queue.getFront() << std::endl;
queue.dequeue();
std::cout << "Front element after dequeue: " << queue.getFront() << std::endl;
return 0;
}
这段代码与之前的示例相似,只是使用了C++中的 关键字来定义结构体而不是 ,但其功能和实现方式基本相同。