资源简介
停车场问题求解
停车场问题求解
停车场问题求解
停车场问题求解
停车场问题求解
停车场问题求解
停车场问题求解
代码片段和文件信息
#include
#include
#define STACK_SIZE 3
enum boolean{ ERROROVERFLOWOK };
typedef unsigned int STATUS;
//--------------------------各个结构体定义-----------------------------------------------//
struct SNode
{
int car_num;
int arr_time;
};
struct QNode
{
int car_num;
int arr_time;
QNode* next;
};
struct Stack
{
SNode* base;
SNode* top;
int stacksize;
};
struct Queue
{
QNode* front;
QNode* rear;
};
//---------------------------------结构体Stack操作函数定义-----------------------------------------//
STATUS initStack(Stack &s)
{
s.base=(SNode*)malloc(STACK_SIZE*sizeof(SNode));
if(!s.base) return ERROR;
s.top=s.base;
s.stacksize=STACK_SIZE;
return OK;
}
STATUS push(Stack &sSNode &car)
{
*s.top++=car;
return OK;
}
STATUS isfull(Stack &s)
{
if(s.top-s.base>=s.stacksize)
return OK;
return ERROR;
}
STATUS pop(Stack &sSNode &car)
{
if(s.top==s.base) return ERROR;
car=*--s.top;
return OK;
}
STATUS Sisempty(Stack &s)
{
if(s.top==s.base)
return OK;
return ERROR;
}
//-----------------------------------------结构体Queue操作函数定义--------------------------------------------------//
STATUS initQueue(Queue &q)
{
q.front=q.rear=(QNode*)malloc(sizeof(QNode));
if(!q.front) exit(OVERFLOW);
q.front->next=NULL;
return OK;
}
STATUS enQueue(Queue &qSNode &car)
{
QNode* qcar = (QNode*)malloc(sizeof(QNode));
if(!qcar) exit(OVERFLOW);
qcar->car_num=car.car_num;
qcar->arr_time=car.arr_time;
qcar->next=NULL;
q.rear->next=qcar;
q.rear = qcar;
return OK;
}
STATUS deQueue(Queue &qSNode &carint leav_time)
{
if(q.front==q.rear) return ERROR;
car.arr_time = leav_time;
QNode* temp = q.front->next;
car.car_num = temp->car_num;
q.front->next=temp->next;
free(temp);
return OK;
}
STATUS Qisempty(Queue &q)
{
if(q.front->next==NULL) return OK;
return ERROR;
}
void main()
{
char firte;
int secthi;
int fee = 0;
struct SNode car;
struct Stack box;
struct Stack temp;
struct Queue wait;
initStack(box);
initStack(temp);
initQueue(wait);
printf(“enter the car‘s infor:“);
scanf(“%c %d %d“&fir&sec&thi);
te = getchar();
car.car_num = sec;
car.arr_time = thi;
while(thi!=‘E‘)
{
if(fir == ‘A‘)
{
if(isfull(box))
{
enQueue(waitcar);
}
else
{
push(boxcar);
}
}
else if(fir == ‘D‘)
{
struct SNode tem_car;
struct SNode tem_car2;
pop(boxtem_car);
while(tem_car.car_num!=car.car_num)
{
push(temptem_car);
pop(boxtem_car);
}
while(!Sisempty(temp))
{
pop(temptem_car2);
push(boxtem_car2);
}
if(!Qisempty(wait))
{
deQueue(waittem_car2thi);
push(boxtem_car2);
}
fee = thi - tem_car.arr_time;
printf(“the fee of %d car is:%d\n“tem_car.car_num
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 531 2009-07-30 12:14 停车场问题\fee.dsw
文件 41984 2009-09-07 11:16 停车场问题\fee.ncb
文件 240 2009-07-30 21:40 停车场问题\fee.plg
文件 4248 2009-07-30 12:41 停车场问题\fee.dsp
文件 33792 2009-07-30 21:41 停车场问题\Debug\vc60.idb
文件 53248 2009-07-30 21:38 停车场问题\Debug\vc60.pdb
文件 220992 2009-07-30 21:23 停车场问题\Debug\fee.pch
文件 178576 2009-07-30 21:38 停车场问题\Debug\fee.ilk
文件 167992 2009-07-30 21:38 停车场问题\Debug\fee.exe
文件 427008 2009-07-30 21:38 停车场问题\Debug\fee.pdb
文件 9480 2009-07-30 21:38 停车场问题\Debug\fee.obj
文件 3217 2009-07-30 21:37 停车场问题\fee.cpp
文件 53760 2009-09-07 11:16 停车场问题\fee.opt
目录 0 2009-07-30 21:23 停车场问题\Debug
目录 0 2009-07-30 12:14 停车场问题
----------- --------- ---------- ----- ----
1195068 15
- 上一篇:学生成绩管理系统_JSF
- 下一篇:USB3.0 CYUSB3014 原理图
评论
共有 条评论