实现顺序队列,可以对队列进行“入队”、“出队”、“清空队列”、“获取队首元素”等操作。键盘输入一些命令,可以执行上述操作。本题中,队列的元素为字母, 队列的最大元素个数为100 #include using namespace std; const int QueueSize = 100; class CirQueue { public: CirQueue(); void EnQueue(char x); void DeQueue(); void GetHead(); void Clear();
private: char data[QueueSize]; int front; int rear; }; CirQueue::CirQueue() { rear = front = QueueSize - 1; }
void CirQueue::EnQueue(char x) { if ((rear + 1) % QueueSize == front) { cout << “上溢” << endl; } else { rear = (rear + 1) % QueueSize; data[rear] = x; } } void CirQueue::DeQueue() { if (rear == front) { cout << “None” << endl; } else { front = (front + 1) % QueueSize; cout << data[front] << endl; } } void CirQueue::GetHead() { if (rear == front) { cout << “下溢” << endl; } else { cout << data[(front + 1) % QueueSize]; } } void CirQueue::Clear() { rear = front; } int main() { CirQueue C; char t; while (1) { cin >> t; if (t == ‘E’) { char a; cin >> a; C.EnQueue(a); } else if (t == ‘C’) { C.Clear(); } else if (t == ‘D’) { C.DeQueue(); } else if (t == ‘G’) { C.GetHead(); } else if (t == ‘Q’) { break; } } return 0; }