数据结构问题:用树型数据结构实现迷宫的生成

现在只有这么多分,全送上,有满意答案再追加!!!

要求:
0.用树型数据结构(不要用堆栈)
1.迷宫的生成要具有随机性,即树节点的生成具有随机性。
2.深度优先或广度优先搜索都行
3.先序遍历各个节点

由于刚刚接触数据结构,对树的用法不是很熟悉,不太清楚如何将节点串起来生成树,如果大家不能够提供完整的代码,希望能够介绍下如何将迷宫各点串起来生成树。

网上相关资料太少,希望大家指点一二。
不要复制粘贴教材上那些定义,谢谢

这大概是一个生成树的问题,如果你希望最后的迷宫是树形的
基本的迷宫模型就是一个m行n列的格子阵列,相邻(上下左右四个方向)之间的格子要么可以互相到达,要么不可以(也就是中间有堵墙)
基本的过程如下:
初始状态:让所有相邻格子之间都不可达
while 这m*n个格子没有全部连通在一起
{
随机找一对相邻的、互相不连通的格子,在这两个格子之间添加一条边(或者说拆掉之间的墙),使其连通
}

显然这样的过程是一定会结束的,并且随后所有的格子连通成一棵树的形状

用并查集(Disjoint Sets)的数据结构可以方便的维护格子之间的连通性,这样整个算法的时间复杂度是O(m*n)的,达到理论上的最优

如果不知道什么是并查集,自己搜一下吧
温馨提示:答案为网友推荐,仅供参考
第1个回答  2008-11-24
遗憾,我之前做的是用堆栈的~~