wordpress基本功能,淘宝关键词优化工具,网站app封装怎么做,免实名域名购买实验内容 
1.问题描述#xff1a; 
设停车场是一个可停放n辆汽车的狭长通道#xff0c;且只有一个大门可供汽车进出。汽车在停车场内按车辆达到时间的先后顺序#xff0c;依次由北向南排列(大门在最南端#xff0c;最先达到的第一辆车停放在车场的最北端)#xff0c;若车场…实验内容 
1.问题描述 
设停车场是一个可停放n辆汽车的狭长通道且只有一个大门可供汽车进出。汽车在停车场内按车辆达到时间的先后顺序依次由北向南排列(大门在最南端最先达到的第一辆车停放在车场的最北端)若车场内已停满n辆汽车则后来的汽车只能在门外的便道上等候一旦有车开走则排在便道上的第一辆车即可开入当停车场内某辆车要离开时在它之后进入的车辆必须先退出车场为它让路待该辆车开出大门外其它车辆在按原次序进入车场每辆停放在车场的车在它离开停车场时必须按它停留的时间长短缴纳费用。试为停车场编制按上述要求进行管理的模拟程序。 
2.基本要求 
(1)以栈模拟停车场以队列模拟车场外的便道按照从终端读入的输入数据序列进行模拟管理。每一组输入数据包括三个数据项:汽车“达到”或“离去”信息、汽车牌照号码以及达到或离去的时刻。对每一组输入数据进行操作后的输出信息为:若是车辆达到、则输出汽车在停车场内或便道上停车位置若是车辆离去则输出汽车在停车场内停留的时间和应交纳的费用(在便道上停留的时间不收费)。栈以顺序结构实现队列以链表结构实现。 
(2)菜单操作 
测试数据 
设n2输入数据为(“A”,1,5),(“A”,2,10),(“D”,1,15),(“A” ,3,20),(“D”,2,35),(E”,0,0),(“A”,1,5),其中 :“A”表示达到(Arrival);“D”表示离去(Departure);“E”表示输入结束(End)。 
实现提示: 
需另设一个栈临时停放为要离去的汽车让路而从停车场退出来的汽车也用顺序存储结构实现。输入数据按到达或离去的时刻有序。栈中每个元素表示一辆汽车包括两个数据项:汽车的牌照号码和进入停车场的时刻。 实验原理 
1.车辆停入停车场的流程 
首先判断停车场的车位是否停满。两种情况(1)停满时此时后来的车辆只能停在走道上(2)未停满时后来的车辆继续入栈。 
2.车辆出站的思想。两种情况(1)车辆在栈顶时此时直接出栈而用不到辅助栈(2)车辆不在车顶时排在前面的车辆必须让位此时它才能出栈算法思想是首先根据输入的车牌号进行在栈中搜索返还一个角标根据角标来找到出栈的车辆这时前面的车辆入辅助栈当循环的目标车辆时这时不需要入辅助栈直接出栈即可. #include stdio.h
#include stdlib.h //用malloc时要声明引入stdlib.h以使用malloc和realloc
#include string.h //字符串处理库例如字符串的复制、连接、比较等 #define MAX_CARS 2 // 停车场最大容量
#define MAX_PLATE_LEN 10 // 汽车牌照最大长度// 定义汽车结构体
typedef struct {char plate[MAX_PLATE_LEN]; // 牌照号码int arrival_time; // 到达时间
} Car;// 顺序栈实现
typedef struct {Car cars[MAX_CARS]; // 停车场存放的汽车数组int top; // 栈顶指针
} Stack;// 链表节点
typedef struct Node {Car car; // 汽车struct Node* next; // 指向下一个节点
} Node;// 链表队列实现
typedef struct {Node* front; // 队首指针Node* rear; // 队尾指针
} Queue;// 初始化栈
void initStack(Stack* stack) {stack-top  -1; // 栈顶指针初始化为-1表示栈为空
}// 判断栈是否满
int isStackFull(Stack* stack) {return stack-top  MAX_CARS - 1; // 栈满的条件
}// 判断栈是否空
int isStackEmpty(Stack* stack) {return stack-top  -1; // 栈空的条件
}// 入栈操作
void push(Stack* stack, Car car) {if (!isStackFull(stack)) { // 先检查栈是否满stack-cars[stack-top]  car; // 将汽车入栈并更新栈顶指针}
}// 出栈操作
Car pop(Stack* stack) {if (!isStackEmpty(stack)) { // 先检查栈是否空return stack-cars[stack-top--]; // 返回栈顶汽车并更新栈顶指针}Car emptyCar  {, 0}; // 返回一个空的汽车结构体表示出栈失败return emptyCar;
}// 初始化队列
void initQueue(Queue* queue) {queue-front  queue-rear  NULL; // 队列前后指针初始化为NULL表示队列为空
}// 判断队列是否空
int isQueueEmpty(Queue* queue) {return queue-front  NULL; // 队列为空的条件
}// 入队操作
void enqueue(Queue* queue, Car car) {Node* newNode  (Node*)malloc(sizeof(Node)); // 创建新节点newNode-car  car; // 设置节点中的汽车信息newNode-next  NULL; // 新节点的next指针初始化为NULLif (isQueueEmpty(queue)) { // 如果队列为空queue-front  queue-rear  newNode; // 新节点既是队首又是队尾} else {queue-rear-next  newNode; // 将新节点添加到队尾queue-rear  newNode; // 更新队尾指针}
}// 出队操作
Car dequeue(Queue* queue) {if (!isQueueEmpty(queue)) { // 先检查队列是否空Node* temp  queue-front; // 暂存队首节点Car car  temp-car; // 获取队首的汽车信息queue-front  queue-front-next; // 更新队首指针free(temp); // 释放旧的队首节点if (queue-front  NULL) { // 如果队列变为空queue-rear  NULL; // 更新队尾指针}return car; // 返回出队的汽车信息}Car emptyCar  {, 0}; // 返回一个空的汽车结构体表示出队失败return emptyCar;
}// 查找并返回车辆在栈中的索引
int findCarInStack(Stack* stack, char* plate) {for (int i  stack-top; i  0; i--) { // 从栈顶向下查找if (strcmp(stack-cars[i].plate, plate)  0) { // 找到匹配的车牌return i; // 返回车辆的索引}}return -1; // 未找到返回-1
}// 主程序
int main() {Stack parking_lot; // 定义停车场栈Queue waiting_area; // 定义便道队列initStack(parking_lot); // 初始化停车场initQueue(waiting_area); // 初始化便道char command; // 命令变量Car car; // 当前处理的汽车int current_time; // 当前时间printf(请输入命令A/D/E\n);while (1) {scanf( %c, command); // 读取命令if (command  E) { // 如果命令是结束break; // 退出循环}scanf(%s %d, car.plate, current_time); // 读取车牌和时间if (command  A) { // 如果是到达命令if (!isStackFull(parking_lot)) { // 检查停车场是否已满car.arrival_time  current_time; // 记录到达时间push(parking_lot, car); // 入栈printf(车辆 %s 停在停车场位置 %d\n, car.plate, parking_lot.top  1);} else { // 停车场已满car.arrival_time  current_time; // 记录到达时间enqueue(waiting_area, car); // 入队printf(车辆 %s 停在便道\n, car.plate);}} else if (command  D) { // 如果是离去命令int index  findCarInStack(parking_lot, car.plate); // 查找车辆在栈中的位置if (index ! -1) { // 如果找到// 将需要让路的车辆放入临时栈Stack temp_stack; // 辅助栈initStack(temp_stack); // 初始化辅助栈for (int i  parking_lot.top; i  index; i--) { // 将需要让路的车辆入辅助栈push(temp_stack, pop(parking_lot)); // 从停车场出栈并入辅助栈}// 出栈目标车辆Car departed_car  pop(parking_lot); // 目标车辆出栈int duration  current_time - departed_car.arrival_time; // 计算停留时间printf(车辆 %s 停留时间 %d需支付费用 %d\n, departed_car.plate, duration, duration);// 将临时栈中的车辆恢复到停车场while (!isStackEmpty(temp_stack)) {push(parking_lot, pop(temp_stack)); // 将辅助栈的车辆放回停车场}// 检查便道是否有车辆可以进入if (!isQueueEmpty(waiting_area)) {Car next_car  dequeue(waiting_area); // 从便道出队next_car.arrival_time  current_time; // 更新到达时间push(parking_lot, next_car); // 入栈停车场printf(车辆 %s 从便道进入停车场停在位置 %d\n, next_car.plate, parking_lot.top  1);}} else {printf(车辆 %s 不在停车场内\n, car.plate); // 未找到车辆}}}return 0; // 程序结束
} 文章转载自: http://www.morning.ptqds.cn.gov.cn.ptqds.cn http://www.morning.lxqkt.cn.gov.cn.lxqkt.cn http://www.morning.ynlpy.cn.gov.cn.ynlpy.cn http://www.morning.mrckk.cn.gov.cn.mrckk.cn http://www.morning.c7623.cn.gov.cn.c7623.cn http://www.morning.nrbcx.cn.gov.cn.nrbcx.cn http://www.morning.cgtrz.cn.gov.cn.cgtrz.cn http://www.morning.gdgylp.com.gov.cn.gdgylp.com http://www.morning.wxwall.com.gov.cn.wxwall.com http://www.morning.dmnqh.cn.gov.cn.dmnqh.cn http://www.morning.hclplus.com.gov.cn.hclplus.com http://www.morning.fnfhs.cn.gov.cn.fnfhs.cn http://www.morning.dmtwz.cn.gov.cn.dmtwz.cn http://www.morning.mfltz.cn.gov.cn.mfltz.cn http://www.morning.dhxnr.cn.gov.cn.dhxnr.cn http://www.morning.qqklk.cn.gov.cn.qqklk.cn http://www.morning.qlpq.cn.gov.cn.qlpq.cn http://www.morning.wztlr.cn.gov.cn.wztlr.cn http://www.morning.c7495.cn.gov.cn.c7495.cn http://www.morning.pcjw.cn.gov.cn.pcjw.cn http://www.morning.jfnbh.cn.gov.cn.jfnbh.cn http://www.morning.glncb.cn.gov.cn.glncb.cn http://www.morning.tkzqw.cn.gov.cn.tkzqw.cn http://www.morning.mmqng.cn.gov.cn.mmqng.cn http://www.morning.hmbxd.cn.gov.cn.hmbxd.cn http://www.morning.sqmbb.cn.gov.cn.sqmbb.cn http://www.morning.pgggs.cn.gov.cn.pgggs.cn http://www.morning.trzzm.cn.gov.cn.trzzm.cn http://www.morning.ypzr.cn.gov.cn.ypzr.cn http://www.morning.bwgrd.cn.gov.cn.bwgrd.cn http://www.morning.qczpf.cn.gov.cn.qczpf.cn http://www.morning.xrwbc.cn.gov.cn.xrwbc.cn http://www.morning.kcsx.cn.gov.cn.kcsx.cn http://www.morning.flqbg.cn.gov.cn.flqbg.cn http://www.morning.prmyx.cn.gov.cn.prmyx.cn http://www.morning.htsrm.cn.gov.cn.htsrm.cn http://www.morning.hcsnk.cn.gov.cn.hcsnk.cn http://www.morning.nqgff.cn.gov.cn.nqgff.cn http://www.morning.gnhsg.cn.gov.cn.gnhsg.cn http://www.morning.jkcpl.cn.gov.cn.jkcpl.cn http://www.morning.dtrzw.cn.gov.cn.dtrzw.cn http://www.morning.ldspj.cn.gov.cn.ldspj.cn http://www.morning.yngtl.cn.gov.cn.yngtl.cn http://www.morning.jwqqd.cn.gov.cn.jwqqd.cn http://www.morning.xdlwm.cn.gov.cn.xdlwm.cn http://www.morning.rywr.cn.gov.cn.rywr.cn http://www.morning.mbfj.cn.gov.cn.mbfj.cn http://www.morning.tdmgs.cn.gov.cn.tdmgs.cn http://www.morning.hxhrg.cn.gov.cn.hxhrg.cn http://www.morning.azxey.cn.gov.cn.azxey.cn http://www.morning.pgzgy.cn.gov.cn.pgzgy.cn http://www.morning.zcsyz.cn.gov.cn.zcsyz.cn http://www.morning.jwxmn.cn.gov.cn.jwxmn.cn http://www.morning.lxlzm.cn.gov.cn.lxlzm.cn http://www.morning.wftrs.cn.gov.cn.wftrs.cn http://www.morning.slkqd.cn.gov.cn.slkqd.cn http://www.morning.sgmgz.cn.gov.cn.sgmgz.cn http://www.morning.kzbpx.cn.gov.cn.kzbpx.cn http://www.morning.fppzc.cn.gov.cn.fppzc.cn http://www.morning.qsfys.cn.gov.cn.qsfys.cn http://www.morning.dgsr.cn.gov.cn.dgsr.cn http://www.morning.xnkb.cn.gov.cn.xnkb.cn http://www.morning.weitao0415.cn.gov.cn.weitao0415.cn http://www.morning.kstlm.cn.gov.cn.kstlm.cn http://www.morning.zlnyk.cn.gov.cn.zlnyk.cn http://www.morning.mxhgy.cn.gov.cn.mxhgy.cn http://www.morning.lxctl.cn.gov.cn.lxctl.cn http://www.morning.nmbbt.cn.gov.cn.nmbbt.cn http://www.morning.knmp.cn.gov.cn.knmp.cn http://www.morning.tjndb.cn.gov.cn.tjndb.cn http://www.morning.drytb.cn.gov.cn.drytb.cn http://www.morning.lwzpp.cn.gov.cn.lwzpp.cn http://www.morning.hhpbj.cn.gov.cn.hhpbj.cn http://www.morning.sjpht.cn.gov.cn.sjpht.cn http://www.morning.pzss.cn.gov.cn.pzss.cn http://www.morning.ytbr.cn.gov.cn.ytbr.cn http://www.morning.ydfr.cn.gov.cn.ydfr.cn http://www.morning.nydgg.cn.gov.cn.nydgg.cn http://www.morning.jggr.cn.gov.cn.jggr.cn http://www.morning.rchsr.cn.gov.cn.rchsr.cn