学习数据结构,我遇到了图形数据结构,我觉得很适合在代码中表达以下图像:
从本质上讲,我打算创建一个可旅行的地图,每个“位置”都是图结构的一个节点,并且发出的命令[North,East,West,South]允许玩家在每个节点上移动。红色节点表示玩家的起始位置。我的问题在于图形本身,因为:
我不知道如何将基本方向的概念引入例如邻接表,该邻接表仅包含不知道其基本位置的节点,例如,节点[0]可以连接到[0] -> [4]-> [8]-> [3],但是当我发出north命令时,我无法知道[4]是否是我想要的结果。
解决这些问题的一种简单方法是通过以下链接列表:
struct Area {
int code;
string title;
Area *north;
Area *east;
Area *south;
Area *west;
};
Area *Lookup;
每个节点都具有手动定义的相邻节点,但是,因为这是针对数据结构类(hashmap / map / vectors不可用),所以我希望通过adjacencylist方法实现它(如果可能的话) )。如果可能,这将如何实施?
邻接矩阵会更好吗?