日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

舞伴配对问题java_舞伴配对问题

發布時間:2023/12/10 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 舞伴配对问题java_舞伴配对问题 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

循環隊列的應用——舞伴配對問題:在舞會上,男、女各自排成一隊。舞會開始時,依次從男隊和女隊的隊頭各出一人配成舞伴。如果兩隊初始人數不等,則較長的那一隊中未配對者等待下一輪舞曲。假設初始男、女人數及性別已經固定,舞會的輪數從鍵盤輸入。試模擬解決上述舞伴配對問題。要求:從屏幕輸出每一輪舞伴配對名單,如果在該輪有未配對的,能夠從屏幕顯示下一輪第一個出場的未配對者的姓名。

//循環隊列的常用函數

#include

#include

#define Maxsize 100

typedef struct{

int *base;

int front;

int rear;

int k; //記錄初始位置

}squeue;

int a,b,i,j,n,m1,m2,m;

void Initqueue(squeue &Q)

{

Q.base=(int*)malloc(Maxsize*sizeof(int));

if (!Q.base)

exit(1);

Q.front=Q.rear=Q.k=0;

}

void Push(squeue &Q,int e)

{

if ((Q.rear+1)%Maxsize==Q.front) //隊滿處理

return;

Q.base[Q.rear]=e;

Q.rear=(Q.rear+1)%Maxsize;

}

void Pop(squeue &Q,int &e)

{

if (Q.rear==Q.front) //判空處理

return;

e=Q.base[Q.front];

Q.front=(Q.front+1)%Maxsize;

if (Q.front==Q.rear)

{

Q.front=Q.k;

}

}

void GetHead(squeue Q)

{

printf("%d\n",Q.base[Q.front]);

}

int main()

{

squeue Q,P;

Initqueue(P);

Initqueue(Q);

printf("請輸入舞會輪數:\n");

scanf("%d",&n);

printf("請輸入男生人數:\n");

scanf("%d",&m1);

printf("請對男生進行編號:\n");

for (i=1;i<=m1;i++)

{

scanf("%d",&P.base[i]);

Push(P,P.base[i]);

}

printf("請輸入女生人數:\n");

scanf("%d",&m2);

for (i=1;i<=m2;i++)

{

scanf("%d",&Q.base[i]);

Push(Q,Q.base[i]);

}

m=m1

for (i=1;i<=n;i++)

{

printf("第%d輪舞會:\n",i);

for (j=1;j<=m;j++)

{

Pop(P,a);

Pop(Q,b);

printf("%d %d\n",a,b);

}

}

return 0;

}

總結

以上是生活随笔為你收集整理的舞伴配对问题java_舞伴配对问题的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。