使用链接列表创建锦标赛括号

时间:2018-04-22 10:37:34

标签: java bluej

我正在尝试使用链接列表创建锦标赛支架,其中锦标赛的每个匹配是具有2个父节点的节点。这可能吗?

2 个答案:

答案 0 :(得分:0)

不确定链表。我认为你需要一个班级团队和一个班级匹配。该匹配将有2个字段,Team1和Team2,一个字段轮次(前16个,前8个等)和一个NextMatch字段,它是Match的一个实例,它将是下一轮。所有这些匹配都可以放在ArrayList中。或者我就是这样做的。

答案 1 :(得分:0)

您描述的结构是树,而不是列表。

虽然理论上可以使用list作为数组建模,然后使用数组来建模任意数据结构,但结果将是一个复杂,低效的混乱。

更好的想法是使用自定义Match类对匹配进行建模;例如像这样的东西:

  public class Match {
      private Player player1;
      private Player player2;
      private Match leadupMatch1; // null in first round
      private Match leadupMatch2; // null in first round
      private Match winnersMatch;
      private Match losersMatch;  // if needed
      private Result result;
      ...
  }

  public class Player {
      ...
  }

  public enum Result {
      NONE,
      PLAYER_1_WINS,
      PLAYER_2_WINS
  }