存储记分板的高效数据结构

Efficient Data Structure to store score board

我无法整理,我需要一些建议。 例如: 这群斯诺克球员每个月都会开会比赛,他们想保持谁赢谁输的记录。 他们已经打了五次了:下面是谁打谁赢的结果。

1st: Cobra VS DODO - Winner = Cobra
2nd: John VS DON - Winner = John
3rd: Swimmer VS Funter - Winner = Swimmer
4th: DODO VS Funter - Winner = DODO
5th: John VS Cobra - Winner = Cobra
6th: DON vs Swimmer - Winner = DON

所以我的问题是,哪种数据结构最适合存储来自图形、哈希图、树、链表的这些信息,以及哪种结构更有效。

我需要如下所示的任何图形或视觉表示: enter image description here 谢谢

我的建议是从更广泛的角度思考,所有实体都涉及到什么。

根据我的想法,这些是以下对象(模型)定义:

 1. Game (game_id : id,  players : [a, b](array of player id involved), winner :a, loser :b)
 2. Players (player_id : id, name: string, games_played : int, lost : int, won: int)

在您的服务中,您可以维护一个 Players 对象的 hashmap,<player_id, Player Object> 是精确的 hashmap 定义。

现在,对于每个 game,通过查找玩家的 id,从哈希表中挑选,找到涉及的玩家,在您的例子中是玩家的名字。 一旦 players 都被获取,将它们的 games_played 递增 1。现在如果玩家 A 赢得了比赛,则递增 Awon 计数 1,玩家 Blost 计数 1。

对所有游戏重复相同的操作。 现在,您的 Player 来自服务的 hashmap 可以暴露给每个玩家以获得您想要的查询。这样,您始终可以高效地找到每个玩家的 games_playedwonlost 计数。如果可以的话,您可以直接打印哈希图以查看每个 Player.