链接列表在同一个链接列表中

时间:2012-05-05 10:16:52

标签: c++ linked-list

我是C ++的新手,我正在处理链接列表。但是,当我写一个Linked List类时,我很困惑。我正在尝试为足球联赛编写代码。我试图让每个团队都在一个链表中,因为每个团队都有玩家,我想将它们存储在一个链表中。所以链表类应该有一个成员来指向一个链表,它与我正在编写的类属性相同。可以吗?

3 个答案:

答案 0 :(得分:3)

是。球队列表的节点将包含球员列表。如果您无法使用std::list

struct Player
{
    Player* nextPlayer;
};

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

我很确定列表不是建模的最佳结构。

答案 1 :(得分:1)

我更喜欢以下结构,因为您可能不想总是在列表中使用玩家和团队:

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

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

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

这允许您将团队或玩家用作独立对象(未连接到其他团队/玩家)。 但是在一个团队中你也可以访问它的玩家,我认为这是可取的。

答案 2 :(得分:0)

如果您使用的是C ++,请改用STL。我正在用向量

解释一个例子

假设这是heirarchy 你有2个League League1,League2 每队有2支Team1,Team2 每支球队有10名球员P1,P2

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