问题描述
- C++ 队列操作,新人小白,在线等,挺急的
-
已知4只队列,如何选中其中最短的队列,进行后续操作?
求大神,讲下思路和代码,要求是原队列进行后续操作
解决方案
BankQueue CompareS(BankQueue Q[4])//找出最短队列
{
int i;
i=Q[0].rear-Q[0].front <= Q[1].rear-Q[1].front ? 0 : 1 ;
i=Q[i].rear-Q[i].front <= Q[2].rear-Q[2].front ? i : 2 ;
return Q[i].rear-Q[i].front<= Q[3].rear-Q[3].front ? Q[i] : Q[3] ;
}
解决方案二:
看你的队列怎么实现的。
假设队列得到长度的函数为length,那么代码如下:
Queue q[] = { q1, q2, q3, q4 };
Queue qmin = q1;
for (int i = 1; i < 4; i++)
if (qmin.length() > q[i].length()) qmin = q[i];
解决方案三:
Queue * qs=new Queue[4];
Queue * q=&(qs[0]);
for( int i=1;i
{
if(q->length() > qs[i].length())
q=&(qi[i]);
}
// 后面使用 q 指针即可。
解决方案四:
代码怎么少了一部分!!!
Queue * qs=new Queue[4];
Queue * q=&(qs[0]);
for( int i=1;i
{
if(q->length() > qs[i].length())
q=&(qi[i]);
}
// 后面使用 q 指针即可。
解决方案五:
蛮简单嘛,你min不要记录queue,记录下标就可以了呀。最后按照下标取出原来的queue后续操作即可。手机码字,就不写代码了。
时间: 2024-10-24 17:47:43