#include<iostream> using namespace std; #define MAXQSIZE 100 #define OK 1 #define ERROR 0 #define OVERFLOW -2 typedef char QElemType; typedef char SElemType; typedef int Status; typedef struct { QElemType *base; int front; int rear; } SqQueue; Status InitQueue(SqQueue &Q) { ; if (!Q.base) exit(OVERFLOW); ; return OK; } Status EnQueue(SqQueue &Q, QElemType e) { if ( ) return ERROR; Q.base[Q.rear] = e; ; return OK; } Status DeQueue(SqQueue &Q, QElemType &e) { if ( ) return ERROR; e = Q.base[Q.front]; ; return OK; } int main() { SqQueue Q; int n, i; char c; InitQueue(Q); cin >> n; for(i=0;i<n;i++){ cin >> c; EnQueue(Q,c); } for(i=0;i<n;i++){ DeQueue(Q,c); cout << c << " "; } return 0; }
时间: 2024-02-14 16:22:50 浏览: 126
#include_iostream.h_
4星 · 用户满意度95%
这段代码实现了一个基于数组的队列,可以将字符元素入队和出队,并按照入队顺序输出。
其中,SqQueue是一个结构体,包含了队列的基地址、队头指针和队尾指针。
函数InitQueue用来初始化队列,Q.base是队列的基地址,通过动态分配内存来实现队列的创建。
函数EnQueue用来将元素e入队,如果队列已满,则返回ERROR;否则将元素e放入队尾,并将队尾指针后移一位。
函数DeQueue用来将队头元素出队,并将其存储到变量e中,如果队列为空,则返回ERROR;否则将队头元素取出,并将队头指针后移一位。
在主函数中,先初始化一个空队列,输入n个字符元素并依次入队,再依次出队并输出。
阅读全文