2012-05-05 102 views
2

我是新的C++,我正在处理链接列表。但是,我很困惑,当我正在写一个链接列表类。我正在为足球联赛写一段代码。我试图让每个球队都在一个链接列表中,并且由于每个球队都有球员,我想将他们存储在链接列表中。所以链表类应该有一个成员来指向一个链接列表,这个链接列表与我正在编写的类是同一个属性。有可能吗?链接列表在同一个链接列表

+1

您可以在LinkedList类中有一个指向LinkedList的指针。LinkedList类内不能有LinkedList对象,这会导致无限大小的对象。在旁注中,你可以简单地使用'std :: list'。 –

+0

您正在使用什么链接列表实现?你使用'std :: list'吗? – Shep

回答

3

是的。球队列表的一个节点将包含球员列表。如果你不能使用std::list

struct Player 
{ 
    Player* nextPlayer; 
}; 

struct Team 
{ 
    Team* nextTeam; 
    Player* firstPlayer; 
}; 

我敢肯定,虽然这名单是不是这个模型的最佳结构。

1

我宁愿以下的结构,你可能不希望在列表中经常使用的球员和球队:

struct PlayerNode 
{ 
    Player* item; 
    PlayerNode* nextNode; 
}; 

struct TeamNode 
{ 
    Team* item; 
    TeamNode* nextNode; 
}; 

struct Team { 
    // ... 
    PlayerNode* firstPlayer; 
}; 

这可以让你使用一个团队或一个球员作为一个独立的对象(未连接到其他球队/球员)。 但是在一个团队中,您也可以访问其球员,我认为这是可取的。

0

如果您使用的是C++,请改为使用STL。我解释与向量一个例子

假设这是层次结构 你有2个联赛League1,League2 各有2支球队TEAM1,的Team2 每队有10名球员P1,P2

所有一个球员团队可以存储在一个名为temp_team的向量中 所有temp_team都可以推送到名为temp_league的向量中 所有temp_league向量都可以推送到名为footBall,League,watever的向量。