• 大小: 161KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-06-05
  • 语言: 其他
  • 标签:

资源简介

停车场问题求解 停车场问题求解 停车场问题求解 停车场问题求解 停车场问题求解 停车场问题求解 停车场问题求解

资源截图

代码片段和文件信息

#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


评论

共有 条评论