用双链表构建一个学生列表队列
Building a Queue of student lists with a Double link list
抱歉所有的问题,但这个函数给了我很多问题。我几乎完成了,但我还有最后一个错误。这个函数的要点是每天一次,送3个学生。一天完成后,它将移动到第二天,并弹出下一个3(有可能移动到下一个队列列表)。我的num2代表一天,每次它完成3个学生,它应该增加一天1。
当我运行程序时,我得到一些奇怪的结果。如果我停留在同一个队列列表上,那么这一天将会增加,但是当我跳转时,它会被卡住在第一个增量上。例子:
我有两个队列列表
第一队列:Rachel, Ed, Amy, Matt第二排:John, Daniel, Nick
结果:俊:瑞秋,艾德,艾米
Day2:
Matt是最后一个…约翰,丹尼尔,
2天:
Nick是最后一个学生。
你知道为什么会这样吗?
主要功能 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;
}
}
}
}
您正在通过reference
表示天数的m
:
int pop_front(int x, int& m)
但是你在函数体中使用num2
:
num2++;
cout<<endl<<endl<<"Day "<<num2<<endl;
,因此您不会在每次调用enqueue
时传递更新的m
。该引用仅适用于m
,当您将m
分配给num2
时,您正在创建一个新变量,并且它们没有链接,因此对num2
的更改将不会反映在m
上。
相关文章:
- 链表,将列表复制到另一个列表
- 为什么在排序链表上的这种合并实现总是将两个列表都设置为 NULL,而只有一个应该设置一个列表?
- 我如何创建一个列表,然后从中创建两个列表,其中一个用于偶数,另一个用于奇数?
- 是否可以使用OpenMP并行化一个列表,该列表可以在每次迭代中添加新元素
- 打印一个列表给出错误,指出迭代器不可递减
- C++:从两个包含子类 (typedef) 的列表创建一个列表
- 在 std 列表中查找对象并将其添加到另一个列表
- 在c++中遍历一个列表并在另一个列表中搜索每个元素
- 我在 C++ 中创建了一个列表容器类,但它没有按预期工作
- 如何通过赋值运算符重载将一个列表复制到另一个列表上?C++
- 正在将指针复制到assign运算符中的另一个列表元素
- 在c++中传递一个列表作为返回类型
- 如何在c++中创建一个列表及其内容常量
- C++:如何将迭代器设置为另一个列表中的结构内的列表
- C++ std::sort 引用另一个列表的自定义比较函数
- 如何让数组在下一次输入之前显示数组内容的前一个列表?
- 如果我创建一个列表:<T>:迭代器,有没有办法重载++(增量)运算符?
- 我如何解码一个列表的列表
- 如何在c++中用一个目录中的所有文件夹填充一个列表框
- c++遍历一个列表来调用某个函数