C语言数据结构问题:停车场问题(栈和队列) | 您所在的位置:网站首页 › 停车场的标识牌为什么上面写着只有一个p › C语言数据结构问题:停车场问题(栈和队列) |
试题描述:
设停车场只有一个可停放几辆汽车的狭长通道,只有一个大门可供汽车进出。汽车在停车场内按车辆到达的先后顺序依次排列,若车场内已停满几辆汽车,则后来的汽车只能在门外的便道上等候,一旦停车场内有车辆开走,则排在便道上的第一辆汽车即可进入;当停车场内某辆汽车要开走时,由于停车场是狭长的通道,在它之后开入的车辆必须先推出车场为他让路,待车辆开出大门,为他让路的车辆再按原次序进入车场。试设计这样一个停车场模拟管理程序,要求有运行结果截图。 要求: (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 实验室设备网 版权所有 |