我正在一个迷宫程序中为我的寻径实现图形 struct .在一些操作中,比如:遍历图,释放图(之前被malloc删除,或者使用广度优先搜索,…需要判断是否访问了顶点.
这是vertex
和edge
struct :
typedef struct graph
{
// val just use to label the vertex
int val;
// since the maze just has 4 directions,
// I simplify vertex to just point to 4 other vertices
edge up;
edge down;
edge left;
edge right;
}vertex;
typedef struct Edge
{
int weight;
vertex *neighbour;
bool visited;
}edge;
我想到了两种解决方案.第一个是在vertex
或edge
struct 中添加bool visited;
,并将其初始化为false
,但它只能使用1次,因为我不知道如何重新初始化visited
.第二种方法是制作一个链接列表,将访问的顶点放在该列表中,并在需要时判断该列表中的访问顶点.但是,当有数百个顶点时,它需要花费大量的工作.
那么,判断顶点是否被访问的好机制是什么?解决这个问题的更好方法是什么?
任何帮助都将不胜感激.