C语言数据结构问题:停车场问题(栈和队列) 您所在的位置:网站首页 停车场的标识牌为什么上面写着只有一个p C语言数据结构问题:停车场问题(栈和队列)

C语言数据结构问题:停车场问题(栈和队列)

2023-11-07 23:13| 来源: 网络整理| 查看: 265

试题描述:

设停车场只有一个可停放几辆汽车的狭长通道,只有一个大门可供汽车进出。汽车在停车场内按车辆到达的先后顺序依次排列,若车场内已停满几辆汽车,则后来的汽车只能在门外的便道上等候,一旦停车场内有车辆开走,则排在便道上的第一辆汽车即可进入;当停车场内某辆汽车要开走时,由于停车场是狭长的通道,在它之后开入的车辆必须先推出车场为他让路,待车辆开出大门,为他让路的车辆再按原次序进入车场。试设计这样一个停车场模拟管理程序,要求有运行结果截图。

要求:

(1)车辆进入要有登记;并自动给车辆编号;记录车辆停靠状态。

    定义结构体,并且车位MAX==5;

typedef struct NODE { CarNode *stack[MAX+1]; int top; }SeqStackCar;//用栈定义,构造停车场 typedef struct car { CarNode*data; struct car*next; }QueueNode;//用队列结点定义,构造停车场外的单个等候车辆 typedef struct Node { QueueNode *head,*rear; }LinkQueueCar;//用队列定义,构造停车场外的等候便道

(2)当停车场的停车位上都已停满了汽车,又有新的汽车到来时要把它调度到便道上,便道上的车辆要按照进入便道的前后顺序顺次序放在便道上,为便道上的每个位置分配一个固定的编号。当有车从停车位上离开后,便道上的第一辆汽车就立即进入停车位上的某个车位。

typedef struct NODE { CarNode *stack[MAX+1]; int top; }SeqStackCar;//用栈定义,构造停车场 typedef struct car { CarNode*data; struct car*next; }QueueNode;//用队列结点定义,构造停车场外的单个等候车辆 typedef struct Node { QueueNode *head,*rear; }LinkQueueCar;//用队列定义,构造停车场外的等候便道

代码如下:(此代码有修改,不能直接运行,修改错误即可)

#include #include using namespace std; #define MAX 5 #define print 0.05 typedef struct time { int hour,min; }Time; typedef struct node { string num; Time reach,leave; }CarNode;//结构体:定义每辆车的牌号,车辆状态我定义为:进入时刻与离开时刻 typedef struct NODE { CarNode *stack[MAX+1]; int top; }SeqStackCar;//用栈定义,构造停车场 typedef struct car { CarNode*data; struct car*next; }QueueNode;//用队列结点定义,构造停车场外的单个等候车辆 typedef struct Node { QueueNode *head,*rear; }LinkQueueCar;//用队列定义,构造停车场外的等候便道 void InitStack(SeqStackCar*); int InitQueue(LinkQueueCar*); int Reach(SeqStackCar*,LinkQueueCar*); void Leave(SeqStackCar*,SeqStackCar*,LinkQueueCar*); void List(SeqStackCar,LinkQueueCar); void PRINT(CarNode*p,int room); int main() { SeqStackCar Enter,Temp;//初始栈,中转栈 LinkQueueCar Wait;//便道队列 int a; InitStack(&Enter); InitStack(&Temp); InitQueue(&Wait);//初始化 while(1) { cout


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有