我是一个初学者,这是我的一个拙作,里面有很多不恰之处,让高手见笑了,请指教。联系我QQ 358271030。
这是用栈和队列模拟的一个停车场管理系统。进来一辆车登记后进入车场,如车场满则进来的车进入便道等候,一旦有车开走则便道自动进入车场。
用一个栈模拟停车场,用一个队列模拟车场外的便道。
#include "stdio.h"
#define NULL 0
#define ERROR 0
#define OK 1
#define OVERFLOW 0
#define STACK_INIT_SIZE 2
typedef struct
{
char label;
float time;
}Car,Car2;
typedef struct
{
Car *top;
Car *base;
int stacksize;
}SqStack;
int InitStack(SqStack *S)
{
S->base=(Car *)malloc(STACK_INIT_SIZE*sizeof(Car));
if(!(S->base)) return ERROR;
S->top=S->base;
S->stacksize=STACK_INIT_SIZE;
return OK;
}
int StackEmpty(SqStack S)
{
if(S.top==S.base)
return OK;
else
return ERROR;
}
int StackFull(SqStack S)
{
if(S.top-S.base>=STACK_INIT_SIZE)
return OK;
else
return ERROR;
}
int Push(SqStack *S,Car e)
{
if(S->top-S->base>=STACK_INIT_SIZE)
return OVERFLOW;
else
{
*(S->top++)=e;
return OK;
}
}
int Pop(SqStack *S,Car *e)
{
if(S->top==S->base)
return ERROR;
*e=*(--(S->top));
}
typedef struct
{
Car2 *top2;
Car2 *base2;
int stacksize2;
}SqStack2;
int InitStack2(SqStack2 *S2)
{
S2->base2=(Car2 *)malloc(STACK_INIT_SIZE*sizeof(Car2));
if(!(S2->top2)) return ERROR;
S2->top2=S2->base2;
S2->stacksize2=STACK_INIT_SIZE;
return OK;
}
int Push2(SqStack2 *S2,Car2 e2)
{
if(S2->top2-S2->base2>=STACK_INIT_SIZE)
return OVERFLOW;
*(S2->top2++)=e2;
return OK;
}
int Pop2(SqStack2 *S2,Car2 *e2)
{
if(S2->top2==S2->base2)
exit(OVERFLOW);
*e2=*(--(S2->top2));
return OK;
}
int StackEmpty2(SqStack2 S2)
{
if(S2.top2==S2.base2)
retu
创造与魔法 安卓版v1.0.0750
创造与魔法是一款开放世界手游,在游戏中玩家可探索这个奇妙的世
创造与魔法修改版 最新版v1.0.0750
创造与魔法无限点券版是款探索冒险游戏,该款游戏的操作还是蛮自
战争与文明官方版本 安卓版v1.7.16
战争与文明是一款由上海邮通科技有限公司开发的战争策略游戏,这
迷你世界0元领皮肤无限迷你币版 最新安卓版v1.43.0
迷你世界0元购买皮肤版是这款开放沙盒冒险建造游戏的特殊破解版
创造与魔法无限经验版 安卓版v1.0.0750
创造与魔法无限经验版是款可以改造环境,整个游戏的自由度还是蛮