抱歉所有问题,但这个功能给我带来了很多问题。我几乎完成了,但我还有最后一个错误。此功能的重点是每天一次弹出 3 个学生。一天完成,它会移动到第二天并弹出下一个 3(有移动到下一个队列列表的可能性)。我的 num2 代表一天,每次完成 3 个学生时,它应该将天增加 1。
当我运行程序时,我得到了一些奇怪的结果。如果我留在同一个队列列表上,这一天会增加,但是当我跳转时,它会卡在第一个增量上。例子:
我有两个队列列表
第一个队列列表:Rachel、Ed、Amy、Matt 第二个队列列表:John、Daniel、Nick
结果:
Day1:瑞秋、艾德、艾米
第2天:
马特,是最后一个学生... 约翰,丹尼尔,
第 2 天:
尼克,是最后一个学生。
关于为什么会发生这种情况的任何想法?
主功能
int s = 0;
int d = 1;
cout<<"How many Student do you currently have appointments with? "<<endl;
cin>>s;
cout<<"What day would you like to start seeing students?"<<endl;
cin>>d;
cout<<"Day "<<d<<endl;
s = priority1->enqueue(s,d);
s = priority2->enqueue(s,d);
s = priority3->enqueue(s,d);
s = priority4->enqueue(s,d);
队列函数调用
int enqueue(int x, int& m)
{
n->pop_front(x,m);
}
LinkList Pop_front 函数
int pop_front(int x, int& m)
{
int num = x;
int num2 = m;
string value;
while(front != NULL)
{
if(num == 3)
{
num = 0;
num2++;
cout<<endl<<endl<<"Day "<<num2<<endl;
}
while(num<3)
{
Node *temp = front;
if(front->next)
{ value = front->name;
front = front->next;
front->prev = NULL;
size--;
delete temp;
cout<<value<<", "<<endl;
num++;
continue;
}
cout<<endl;
if(front->next == NULL)
{
value=front->name;
front = NULL;
back = NULL;
delete temp;
size--;
cout<<value<<", is the last student in this priority Queue list"<<endl;
num++;
return num;
}
}
}
}