这个程序是利用栈和循环队列实现的,自己得先处理好逻辑关系就好了。由于题目没有要求,这个程序就没加重复判断,比如一辆车已经停在车位上或者便道上,再来一辆就判断不了了。关于栈,就是先进后出的思想,队列就是先进先出的思想。这个程序自己没用链栈和链队列做,因为感觉比较耗时。不过栈和队列的运用大多数都是用数组,先掌握好数组的表示再用链表写上手也很快。
**项目要求:**停车场是一个能放 n 辆车的狭长通道,只有一个大门,汽车按到达的先后次序停放。若车场满了,车要在门外的便道上等候,一旦有车走,则便道上第一辆车进入。当停车场中的车离开时,由于通道窄,在它后面的车要先退出,待它走后依次进入。汽车离开时按停放时间收费。
基本功能要求:
1)建立三个数据结构分别是:停放队列,让路栈,等候队列
2)输入数据模拟管理过程,数据(入或出,车号)。
头文件: PLot.h
//
// Created by PC-Saw on 2018/12/17.
//
#ifndef __PLOT_H__
#define __PLOT_H__
#define Price 1 // 单价可以自己定义n
#define MAX_STOP 10
#define MAX_PAVE 10
#include <stdlib.h>
#include <stdio.h>
#include <windows.h>
#include <time.h> // 包含时间函数的头文件
#include <string.h>
// 汽车信息
typedef struct
{
int timeIn; // 进入停车场时间
int timeOut; // 离开停车场时间
char plate[10];
// 汽车牌照号码,定义一个字符指针类型
}Car;
// 停放栈(用于停放车辆)
typedef struct
{
Car Stop[MAX_STOP]; // 用于停放车辆的栈
int top; // 标记栈顶位置
}Stopping;
// 等候队列
typedef struct
{
int count; // 用来指示队中的数据个数
Car Pave[MAX_PAVE]; // 等候停车的队列
int front, rear; // 标记队头和队尾位置
}Pavement;
// 让路栈
typedef struct
{
Car Help[MAX_STOP]; // 用于让路的队列
int top; // 标记站定位置
}Buffer;
Stopping s;