-1
對不起所有的問題,但是這個功能給了我很多問題。我已經完成了,但我有一個最後的錯誤。這個功能的重點是每天播放一次3名學生。當天完成的一天,它將移動到第二天,並彈出下一個3(有可能移動到下一個隊列列表中)。我的num2代表一天,每次完成3個學生,它應該增加1天。使用Double鏈接列表構建學生列表隊列
當我運行該程序時,我得到了一些奇怪的結果。如果我留在相同的隊列列表中,那一天會增加罰款,但是當我跳躍時,它會卡在第一個增量上。例如:
我有兩個隊列列出
第一次隊列列表:雷切爾,埃德,艾米,馬特 第二隊列列表:約翰·丹尼爾,尼克
結果:
第一天: 雷切爾, 埃德, 艾米
第二天:
馬特,是最後一個學生...... 約翰, 丹尼爾,
第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);
}
鏈表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;
}
}
}
}
爲什麼不直接使用std :: list? –
建立我自己的項目 – user2130537
這並不能解釋爲什麼你的項目不能使用std :: list。該類已由類庫作者調試過。 –