#ifndef DEFINE
#define DEFINE
#include <malloc.h>
#include <cstdlib>
#define OK 1
#define ERROR 0
#define OVERFLOW -2
typedef int Status;
typedef struct
{
int x;
int y;
}PosType;
//typedef int SElemType;
typedef struct
{
int order;
PosType seat;
int direction;
}SElemType;
typedef struct NodeType
{
SElemType data;
NodeType *next;
}*LinkType;
typedef struct
{
LinkType head;
LinkType top;
int StackSize;
}Stack;
Status MakeNode(LinkType &l)
{
l=(LinkType)malloc(sizeof(NodeType));
if(!l)
exit(OVERFLOW);
l->next=NULL;
return OK;
}
#endif
、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、
#ifndef STACK
#define STACK
#include "define.h"
Status InitStack(Stack &S)
{
MakeNode(S.head);
S.top=NULL;
S.StackSize=0;
return OK;
}
bool StackEmpty(Stack&S)
{
return S.top==NULL;
}
Status Push(Stack &S,LinkType &temp)
{
temp->next=S.head->next;
S.head->next=temp;
S.top=temp;
return OK;
}
Status Pop(Stack &S,LinkType &e)
{
if(S.head==S.top)
return ERROR;
e=S.top;
S.top=S.top->next;
S.head->next=S.top;
}
Status GetTop(Stack &S,LinkType &e)
{
if(!S.top)
return ERROR;
e=S.top;
}
#endif