数据结构与算法的问题,要求使用队列(两种方式,顺序与链式)要求C 编写
排队加油:加油站有两个加油口(编号:A和B),第一个加油口的加完一辆车需要2T时间,第二个加油口需要3T。假设开始时两个队伍为空,每隔T时间会有一辆车辆排队,新来的汽车总...
排队加油:加油站有两个加油口(编号:A和B),第一个加油口的
加完一辆车需要2T时间,第二个加油口需要3T。假设开始时两个队伍为空,
每隔T时间会有一辆车辆排队,新来的汽车总排在比较短的队伍后面。一
共有N辆车来加油,按到达时间编号:(1到N),按加完油顺序输出汽车
编号和汽车加油口编号 展开
加完一辆车需要2T时间,第二个加油口需要3T。假设开始时两个队伍为空,
每隔T时间会有一辆车辆排队,新来的汽车总排在比较短的队伍后面。一
共有N辆车来加油,按到达时间编号:(1到N),按加完油顺序输出汽车
编号和汽车加油口编号 展开
1个回答
2020-05-18
展开全部
//来自一个菜鸟的回答,写的不好,有问题可以指出哦。
#include<stdio.h>
void main(){
int i,N;
int queue_1[50]={0},queue_2[50]={0},front1=0,front2=0,rear1=0,rear2=0;
scanf("%d",&N);
for(i=1;i<=N;i++){
if(i%2==0&&rear1!=front1){ // 如果时间是2T 汽车i就出A站
printf("A-%d\n",queue_1[front1++]);
}
if(i%3==0&&rear2!=front2){ //如果时间是3T,汽车出B站,注意如果是6的倍速的话,A,B内都有车出站。
printf("B-%d\n",queue_2[front2++]);
}
if ((rear1-front1)==(rear2-front2))//如果站内汽车相等,默认进入A站
queue_1[rear1++]=i;
else (rear1-front1)>(rear2-front2)?(queue_2[rear2++]=i):(queue_1[rear1++]=i); //谁的汽车数小进谁家
}
//现在没有汽车要进站了,就考虑出站顺序
for(i;i<9999&&front1!=rear1&&front2!=rear2;i++){ //注意时间不要重置,继续是i
if(i%2==0){
printf("A-%d\n",queue_1[front1++]);
}
else if(i%3==0){
printf("B-%d\n",queue_2[front2++]);
}
}
// 当有一家汽车走完时,另一家还有的话,直接出站就是了
while(front1!=rear1){
printf("A-%d\n",queue_1[front1++]);
}
while(front2!=rear2){
printf("B-%d\n",queue_2[front2++]);}
}
#include<stdio.h>
void main(){
int i,N;
int queue_1[50]={0},queue_2[50]={0},front1=0,front2=0,rear1=0,rear2=0;
scanf("%d",&N);
for(i=1;i<=N;i++){
if(i%2==0&&rear1!=front1){ // 如果时间是2T 汽车i就出A站
printf("A-%d\n",queue_1[front1++]);
}
if(i%3==0&&rear2!=front2){ //如果时间是3T,汽车出B站,注意如果是6的倍速的话,A,B内都有车出站。
printf("B-%d\n",queue_2[front2++]);
}
if ((rear1-front1)==(rear2-front2))//如果站内汽车相等,默认进入A站
queue_1[rear1++]=i;
else (rear1-front1)>(rear2-front2)?(queue_2[rear2++]=i):(queue_1[rear1++]=i); //谁的汽车数小进谁家
}
//现在没有汽车要进站了,就考虑出站顺序
for(i;i<9999&&front1!=rear1&&front2!=rear2;i++){ //注意时间不要重置,继续是i
if(i%2==0){
printf("A-%d\n",queue_1[front1++]);
}
else if(i%3==0){
printf("B-%d\n",queue_2[front2++]);
}
}
// 当有一家汽车走完时,另一家还有的话,直接出站就是了
while(front1!=rear1){
printf("A-%d\n",queue_1[front1++]);
}
while(front2!=rear2){
printf("B-%d\n",queue_2[front2++]);}
}
迈杰
2024-11-30 广告
2024-11-30 广告
RNA-seq数据分析是转录组研究的核心,包括数据预处理、序列比对、定量分析、差异表达分析、功能注释和可视化等步骤。数据预处理主要是质量控制和去除低质量序列。序列比对使用HISAT2、STAR等工具将reads比对到参考基因组。定量分析评估...
点击进入详情页
本回答由迈杰提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询