#include<iostream>
using namespace std;
#define OK 1
#define ERROR 0
typedef int Status;
typedef int QElemType;
typedef struct QNode {
QElemType data;
struct QNode *next;
} QNode, *QueuePtr;
typedef struct {
QueuePtr front;
QueuePtr rear;
} LinkQueue;
Status InitQueue(LinkQueue &Q)
{
Q.front = Q.rear = new QNode;
Q.front->next = NULL;
return OK;
}
Status EnQueue(LinkQueue &Q, QElemType e)
{
QueuePtr p;
p = new QNode;
p->data = e;
p->next = NULL;
Q.rear->next=p;
Q.rear=p;
return OK;
}
Status DeQueue(LinkQueue &Q, QElemType e)
{
QueuePtr p;
if (Q.front == Q.rear)
cout<<"invalid";
p = Q.front->next;
e = p->data;
Q.front->next=p->next;
cout<<e<<endl;
if (Q.rear == p)
Q.rear=Q.front;
delete p;
return OK;
}
int main()
{
LinkQueue Q;
int n,m,e;
InitQueue(Q);
cin >> n;
while(n--)
{
cin >> m;
switch(m)
{
case 1:
cin>>e;
EnQueue(Q,e);
break;
case 0:
DeQueue(Q,e);
break;
}
}
return 0;
}
我的疑惑是按理说n是操作个数,为什么它循环的时候,把我的e要存放的数值也当成一次操作个数呢?