
如果你希望最后的
迷宫是树形的 基本的迷宫模型就是一个m行n列的
格子阵列,相邻(上下左右四个方向)之间的格子要么可以互相到达,要么不可以(也就是中间有堵墙) 基本的过程如下: 初始状态:让所有相邻格子之间都不可达 while 这mn个格子没有全部连通在一起 { 随机找一对相邻的、互相不连通的格子,在这两个格子之间添加一条边(或者说拆掉之间的墙),使其连通 } 显然这样的过程是一定会结束的,并且随后所有的格子连通成一棵树的形状 用并查集(Disjoint Sets)的
数据结构可以方便的维护格子之间的连通性,这样整个算法的时间复杂度是O(mn)的,达到理论上的最优 如果不知道什么是并查集
评论列表(0条)