//用数组实现队列
#include <iostream>
#include <string>
using namespace std;
void push(int *queue, int num, int &end_index, int &queue_size, int queue_len)
{
if (queue_size == queue_len)
cout << "the queue is enough, please pop the data!" << endl;
else
{
queue[end_index] = num;
end_index = (end_index + 1 == queue_len ? 0 : end_index + 1);
++queue_size;
}
}
void pop(int *queue, int &start_index, int &queue_size, int queue_len)
{
if (queue_size == 0)
cout << "the queue is empty, please push the data!" << endl;
else
{
cout << endl << '\t' <<queue[start_index];
start_index = (start_index + 1 == queue_len ? 0 : start_index + 1);
--queue_size;
}
}
void peak(int *queue, int &start_index, int &queue_size)
{
if (queue_size == 0)
cout << "the queue is empty, please push the data!" << endl;
else
{
cout << endl << '\t' <<queue[start_index];
}
}
void show(int *queue, int start_index, int end_index, int queue_size, int queue_len)
{
if (queue_size == 0)
cout << "the queue is empty, please push the data!" << endl;
else
{
while(start_index != end_index && queue_size != 0)
{
cout << queue[start_index] << ' ';
start_index = (start_index + 1 == queue_len ? 0 : start_index + 1);
--queue_size;
}
}
}
int main()
{
int queue_len, num;
cout << "please input the length of the queue:" << '\t';
cin >> queue_len;
int *queue = new int [queue_len];
int start_index = 0, end_index = 0, queue_size = 0;//当前要存取数的位置
string str;
cout << endl << "input data. please select the method: push pop peak show exit: " << '\t';
while(cin >> str)
{
cout << endl;
if(str == "push")
{
cout << "please input the data: " << '\t';
cin >> num;
push(queue ,num , end_index, queue_size, queue_len);
}
else if(str == "pop")
pop(queue, start_index, queue_size, queue_len);
else if(str == "peak")
peak(queue, start_index, queue_size);
else if(str == "show")
show(queue, start_index, end_index, queue_size, queue_len);
else if(str == "exit")
{
delete [] queue;
return 0;
}
else
cout << "try again" << endl;
cout << endl << "input data. please select the method: push pop peak exit: " << '\t';
}
system("pause");
return 0;
}
用数组实现队列
最新推荐文章于 2021-07-13 22:18:11 发布