我有一个“在电台模拟音乐机器”的作业。我必须使用列表。所以我决定使用二维列表,这样就可以更快地找到所需的轨道。结构是这样的:原谅我的绘画技巧。 结构声明是这样的。
struct TrackNode
{
int PlayLimit;
std::string TrackName;
TrackNode *NextTrack;
};
struct ArtistNode
{
std::string ArtistName;
ArtistNode *NextArtist;
TrackNode *NextTrack;
};
我不明白的是如何遍历这样的清单。如何在艺术家节点中存储带有曲目名称的艺术家姓名?如何知道我何时到达下一位艺术家? 我不需要代码,只需要基本原理。请不要告诉我使用其他东西,因为我必须使用多维列表。
答案 0 :(得分:1)
大致相同:
ArtistNode* first_artist;
for( ArtistNode* artist = first_artist; artist != 0; artist = artist->NextArtist ){
for( TrackNode* track = artist->NextTrack; track != 0; track = track->NextTrack ){
cout << artist->ArtistName << ' ' << track->TrackName << endl;
}
}
您有两个维度,因此您需要一个循环来遍历您的艺术家列表,并为每个艺术家提供一个嵌套循环来遍历该艺术家的曲目。