#include <stdio.h>
#include <iostream.h>
#include <stdlib.h>
#define stacksize 100
#define queuesize 100
/* 队列的相关操作*/
typedef char datatype;
typedef struct {
char data[100];
int front,rear;
}seqqueue; //定义队列类型
/* 定义栈*/
typedef struct {
datatype data[100];
int top;
}seqstack; //定义栈的类型
//初始化队列
void InitQueue(seqqueue *q)
{
q->front=0;
q->rear=0;
}
//判空队列
int QueueEmpty(seqqueue *q)
{
return q->rear==q->front;
}
//入队列
void EnQueue(seqqueue *q,datatype x)
{
if ((q->rear+1)%queuesize==q->front)
cout<<"queue overflow"<<endl;
else
{
q->data[q->rear]=x;
q->rear=(q->rear+1)%queuesize;
}
}
//出队列
datatype DeQueue(seqqueue *q)
{
datatype x=' ';
if (q->rear==q->front)
cout<<"queue empty"<<endl;
else
{
x=q->data[q->front];
q->front=(q->front+1)%queuesize;
}
return x;
}
//初始化栈
void InitStack(seqstack *s)
{
s->top=0;
}
//入栈
void Push(seqstack *s,datatype x)
{