在java中表示rubik多维数据集的最佳数据结构是什么

时间:2015-03-04 08:54:25

标签: java

在我的问题中,我不需要解决rubik立方体..但是我必须根据Singmaster的表示法找到rubik立方体的正面看起来像是几行之后的样子。 在这个问题中,哪种数据结构最适合代表rubik立方体。

1 个答案:

答案 0 :(得分:3)

您可以将所有状态存储在多维数组中,如下所示:

Object[][][] test = new Object[3][3][3];

对象应该用表示立方体侧的单个值的类代替。但请注意,此数组还包含多维数据集不可见部分的值(在3x3x3示例中,该多维数据集中间的块)。

<强>更新

如果您希望使用该问题的类,则多维数据集的表示逻辑会变得相当复杂。

class Cube {
    private CubeSide bottom = new CubeSide();
    private CubeSide top = new CubeSide();
    private CubeSide left = new CubeSide();
    private CubeSide right = new CubeSide();
    private CubeSide front = new CubeSide();
    private CubeSide back = new CubeSide();
}

class CubeSide {
    private CubePart[][] = new CubePart[3][3];
}

class CubePart {
    private String color = "red";
}

那很快就可以实现可能移动的逻辑,并且必须在每次移动后重建边。但是我不会完全删除数组,因为你可以使用索引来识别你必须移动的图层中的CubeParts。