如何遍历二维列表?

时间:2014-05-24 19:35:21

标签: c++ list

我有一个“在电台模拟音乐机器”的作业。我必须使用列表。所以我决定使用二维列表,这样就可以更快地找到所需的轨道。结构是这样的:enter image description here原谅我的绘画技巧。 结构声明是这样的。

struct TrackNode
{ 
   int PlayLimit;
   std::string TrackName;
   TrackNode *NextTrack; 

};

struct ArtistNode
{
    std::string ArtistName;
    ArtistNode *NextArtist;
    TrackNode *NextTrack; 
};

我不明白的是如何遍历这样的清单。如何在艺术家节点中存储带有曲目名称的艺术家姓名?如何知道我何时到达下一位艺术家? 我不需要代码,只需要基本原理。请不要告诉我使用其他东西,因为我必须使用多维列表。

1 个答案:

答案 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;
    }
}

您有两个维度,因此您需要一个循环来遍历您的艺术家列表,并为每个艺术家提供一个嵌套循环来遍历该艺术家的曲目。