c++链队列的基本操作实验
时间: 2024-12-01 14:29:45 浏览: 14
C++链队列是一种线性数据结构,它通常由两个指针(头节点和尾节点)维护,支持队列的操作特性,即先进先出(FIFO)。以下是链队列的一些基本操作:
1. 初始化:创建一个空的链队列,没有头和尾元素。
```cpp
Queue* createQueue() {
return new Queue();
}
```
2. 入队(Queue.push(element)):在队列尾部添加新的元素。
```cpp
void enqueue(Queue* queue, int data) {
Node* newNode = new Node(data);
if (queue->isEmpty()) {
queue->setHead(newNode);
} else {
queue->getTail()->setNext(newNode);
}
queue->setTail(newNode);
}
```
3. 出队(Queue.dequeue()):删除并返回队首的元素,如果队列为空则抛异常。
```cpp
int dequeue(Queue* queue) {
if (queue->isEmpty()) {
throw EmptyQueueException();
}
int data = queue->getHead()->getData();
Node* temp = queue->getHead();
queue->setHead(queue->getHead()->getNext());
delete temp;
return data;
}
```
4. 查看队列是否为空(Queue.isEmpty()):检查队列是否有元素。
```cpp
bool isEmpty(Queue* queue) {
return queue->getHead() == nullptr;
}
```
5. 获取队列大小(Queue.size()):计算队列中的元素个数,这里假设每个节点只存储一个元素。
```cpp
int size(Queue* queue) {
int count = 0;
Node* current = queue->getHead();
while (current != nullptr) {
count++;
current = current->getNext();
}
return count;
}
```
阅读全文