队列的顺序表示和实现 编写一个程序实现顺序队列的各种基本运算,并在此基础上设计一个主程序,完成如下功能:用c++来实现
时间: 2024-02-03 09:13:03 浏览: 123
队列(Queue)是一种常见的线性数据结构,具有先进先出(FIFO)的特点。队列有两个基本操作:入队(Enqueue)和出队(Dequeue)。队列的实现有两种方式:顺序队列和链式队列。
顺序队列的实现:
队列的顺序表示是用数组来实现的。通过一个数组和两个指针front和rear来表示一个队列。front指向队列的头部,rear指向队列的尾部。
基本运算包括:
- 初始化队列
- 判断队列是否为空
- 判断队列是否已满
- 入队
- 出队
- 输出队列中所有元素
以下是c++实现:
```cpp
#include<iostream>
using namespace std;
const int MAXSIZE = 100; //队列的最大长度
class Queue{
private:
int data[MAXSIZE]; //队列数据
int front; //队列头指针
int rear; //队列尾指针
public:
Queue(){ //初始化队列
front = rear = 0;
}
bool isEmpty(){ //判断队列是否为空
return front == rear;
}
bool isFull(){ //判断队列是否已满
return (rear + 1) % MAXSIZE == front;
}
void Enqueue(int x){ //入队
if(isFull()){
cout<<"Queue is full!"<<endl;
return;
}
data[rear] = x;
rear = (rear + 1) % MAXSIZE;
}
void Dequeue(){ //出队
if(isEmpty()){
cout<<"Queue is empty!"<<endl;
return;
}
front = (front + 1) % MAXSIZE;
}
void PrintQueue(){ //输出队列中所有元素
if(isEmpty()){
cout<<"Queue is empty!"<<endl;
return;
}
cout<<"Queue elements: ";
int i = front;
while(i != rear){
cout<<data[i]<<" ";
i = (i + 1) % MAXSIZE;
}
cout<<endl;
}
};
int main(){
Queue q;
q.Enqueue(1);
q.Enqueue(2);
q.Enqueue(3);
q.PrintQueue(); //输出队列元素
q.Dequeue();
q.PrintQueue(); //输出队列元素
return 0;
}
```
主程序实现了以下功能:
- 初始化一个队列
- 将元素1、2、3入队
- 输出队列中所有元素
- 将队头元素1出队
- 输出队列中所有元素
阅读全文