数组仿真队列

xiaoxiao2021-02-28  53

队列简称队,它也是一种运算受限的线性表,其限制仅允许在表的一端进行插入,而在表的另一端进行删除。我们把进行插入的一端称作队尾(rear),进行删除的一端称作队首。向队列中插入新元素称为进队或入队,新元素进队后成为新的队尾元素;从队列中删除元素称为离队或出队,元素离队后,其后继元素就成为队首元素。

由于队列的插入和删除操作分别是在各自的一端进行的,每个元素必然按照进入的次序离队。所以又把队列称为先进先出表。

#include <iostream> using namespace std; int queue[5]= {0}; int front =-1;//头指针 int rear=-1;//尾指针 void addqueue (int value) { if(rear>=5) cout<<"The queue is full!\n"; else { rear++; queue[rear]=value; } } int delqueue() { int temp; if(front ==rear) return -1; else { front ++; temp=queue[front]; queue[front]=0; return temp; } } void display() { int i; for(int i=0; i<5; i++) { if(queue[i]!=0) cout<<queue[i]<<' '; } cout<<endl; } int main() { int select; int i,temp; while(1) { cout<<"1.Input a data\n"; cout<<"2.Output a data\n"; cout<<"3.Exit\n"; cin>>select; switch(select) { case 1: cout<<"Please input a value "; cin>>temp; addqueue(temp); break; case 2: if(delqueue()==-1) //如果队列是空 cout<<"The queue is empty!\n"; else cout<<"The out value is "<<temp<<endl; break; case 3: return 0; } display(); } return 0; }
转载请注明原文地址: https://www.6miu.com/read-2627611.html

最新回复(0)