#include <iostream.h>
#include <stdio.h>
#define STACK_INIT_SIZE 100;
#define STACKINCREMENT 10;
#define OVERFLOW -2;
#define OK 1;
#define ERROR 0;
#define MAXQSIZE 150;
typedef int Status;
typedef struct{
char exist[10];
int number;
int minute;
}SElemType;
typedef struct{
int number;
}QElemType;
typedef struct{
SElemType *base;
SElemType *top;
int stacksize;
}SqStack;
typedef struct{
QElemType *base;
int front;
int rear;
}SqQueue;
Status InitStack(SqStack &s)
{
s->base=(SElemType *)malloc(STACK_INIT_SIZE *sizeof(ElemType));
if(!s->base)exit(OVERFLOW);
s->top=s->base;
s->stacksize=STACK_INIT_SIZE;
return OK;
}
Status Push(SqStack &s,SElemType e)
{
if(s->top-s->base>=s->stacksize)
{
s->base=(ElemType *)realloc(s->base,(s->stacksize+STACKINCREMENT) *siz
eof(ElemType));
if(!s->base)exit(OVERFLOW);
S->top=s->base+s->stacksize;
s->stacksize+=STACKINCREMENT;
}
*s->top++=e;
return OK;
}
Status Pop(SqStack &s,SElemType &e)
{
if(s->top==s->base)return ERROR;
e=*--s->top;
return OK;
}
Status InitQueue(SqQueue &Q)
{
Q->base=(QElemType *)malloc(MAXQSIZE *sizeof(QlemType));
if(!Q->base)exit(OVERFLOW);
Q->front=Q->rear=0;
return OK;
}
Status EnQueue(SqQueue &Q,QElemType e)
{
if((Q->rear+1)%MAXQSIZE==Q->front)return ERROR;
Q->base[Q->rear]=e;
Q->rear=(Q->rear+1)%MAXQSIZE;
return OK;
}
Status DeQueue(SqQueue &Q,QElemType &e)
{
if(Q->front==Q->rear)return ERROR;
e=Q->base[Q->front];
Q->front=(Q->front+1)%MAXQSIZE;
return OK;
}
void main()
{
InitStack(s1);
InitStack(s2);
InitQueue(Q1);
Push(s1,e)
--
FROM 202.118.13.65