當前位置:編程學習大全網 - 編程軟體 - 數據結構與算法的問題,要求使用隊列(兩種方式,順序與鏈式)要求C 編寫

數據結構與算法的問題,要求使用隊列(兩種方式,順序與鏈式)要求C 編寫

//來自壹個菜鳥的回答,寫的不好,有問題可以指出哦。

#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++]);}

}

  • 上一篇:排列組合中的C和A怎麽理解舉例(排列組合中的C和A怎麽理解 知乎)
  • 下一篇:東京工業大學有哪些熱門專業值得推薦?
  • copyright 2024編程學習大全網