C++ 如何遍历二维列表?
我的任务是“在电台上模拟音乐机器”。我必须使用列表。所以我决定使用二维列表,这样就可以更快地找到所需的曲目。结构是这样的:请原谅我的绘画技巧。 结构声明是这样的C++ 如何遍历二维列表?,c++,list,C++,List,我的任务是“在电台上模拟音乐机器”。我必须使用列表。所以我决定使用二维列表,这样就可以更快地找到所需的曲目。结构是这样的:请原谅我的绘画技巧。 结构声明是这样的 struct TrackNode { int PlayLimit; std::string TrackName; TrackNode *NextTrack; }; struct ArtistNode { std::string ArtistName; ArtistNode *NextArtist
struct TrackNode
{
int PlayLimit;
std::string TrackName;
TrackNode *NextTrack;
};
struct ArtistNode
{
std::string ArtistName;
ArtistNode *NextArtist;
TrackNode *NextTrack;
};
我不明白的是如何遍历这样的列表。存储在艺术家节点中时,如何使用曲目名称显示艺术家名称?如何知道我何时到达下一位艺术家?
我不需要代码,只需要基本原则。请不要告诉我使用其他东西,因为我必须使用多维列表。大致如下:
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;
}
}
ArtistNode*第一位艺术家;
对于(ArtistNode*artist=第一个艺术家;艺术家!=0;艺术家=艺术家->下一个艺术家){
对于(TrackNode*track=artist->NextTrack;track!=0;track=track->NextTrack){
ArtistName对一个ArtistNode
有一个NextStart
和一个NextTrack
意味着什么?数据结构对我来说也没有意义。你能详细说明你为什么要这样做吗?什么是“音乐机器”您试图解决的任务是什么?@OliCharlesworthArtistNode
链接列表中的每个节点(由NextArtist
链接)有一个TrackNode
的链接列表。图片缺少ArtistNode
对象之间的直接链接线,并且曲目列表的最后一个TrackNode
不应该有到下一个ArtistNode
的链接(至少这是我的看法,ymmv)@WhozCraig所以最后一首歌不应该链接到下一位艺术家?所以我只能从艺术家节点访问下一位艺术家?没错。你是在试图建立一个剧作家吗?如果是这样,一个二级数据结构可能会满足你的需要。你在这里展示的更像是一个“库”列表。播放列表将是指向“库”中节点的指针列表。不需要太长的距离就可以看出这可能是您正在尝试做的。如果有帮助,最后一句话也可能是:“您需要一个循环来遍历艺术家列表,对于每个艺术家,需要一个嵌套的循环来遍历该艺术家的轨迹。”谢谢,比我的好多了,抄袭:-)