Model 邻接列表以建立相对定位形状之间的关系模型?

Model 邻接列表以建立相对定位形状之间的关系模型?,model,graph-theory,shapes,adjacency-list,Model,Graph Theory,Shapes,Adjacency List,我正在尝试建模一个由一个或多个形状组成的复合对象。为了简单起见,我假设这些形状都是矩形。合成图可能是这样的(请原谅我糟糕的ASCII艺术): +---+-------+---+ | | 2 | 5 | | +-------+---+ | 1 | 3 | | | +-------+ 6 | | | 4 | | +---+-------+---+ 维基百科把我引向了图论,这是我在大学时几乎记不起来的,而邻接列表似乎是一个很好的方法来模拟所有这些形状之间

我正在尝试建模一个由一个或多个形状组成的复合对象。为了简单起见,我假设这些形状都是矩形。合成图可能是这样的(请原谅我糟糕的ASCII艺术):

+---+-------+---+ | | 2 | 5 | | +-------+---+ | 1 | 3 | | | +-------+ 6 | | | 4 | | +---+-------+---+ 维基百科把我引向了图论,这是我在大学时几乎记不起来的,而邻接列表似乎是一个很好的方法来模拟所有这些形状之间的关系


我的问题是,我能在邻接列表中指出左、右、上、下关系吗?仅仅说1与2相邻是不够的;我需要说1是2的左边(3高于4,等等)。

当然。正常邻接列表可能如下所示:

vertex {
    neighbours: // list of neighbours
}
要包括相对位置,每个顶点可以具有每个方向的邻接列表:

vertex {
    left: ...
    right: ...
    up: ...
    down: ...
}
因此:


当然。正常邻接列表可能如下所示:

vertex {
    neighbours: // list of neighbours
}
要包括相对位置,每个顶点可以具有每个方向的邻接列表:

vertex {
    left: ...
    right: ...
    up: ...
    down: ...
}
因此:


啊!为什么我没想到呢?伪代码让它看起来很简单。谢谢啊!为什么我没想到呢?伪代码让它看起来很简单。谢谢
1 {
    left: []
    right: [2,3,4]
    up: []
    down: []
}