迷宫生成算法

应用求并/查找数据结构的一个例子是迷宫的生成。起点位于左上角。而中点位于图的右下角。可以把迷宫看成是由单元组成的5X5矩形,在该矩形中,左上角的单元被连通到右下角的单元,而且这些单元与相邻的单元通过墙壁分离开来。
生成迷宫的一个简单算法是从各处的墙壁开始(除入口和出口之外)。此时,不断地随机选择一面墙,如果被该墙分割的单元彼此不连通,那么就把这面墙拆掉。重复这个过程直到开始单元和终止单元连通,那么就得到一个迷宫。
Q:如何设计一个生成迷宫的算法,这个迷宫不含有从开始点到终止点的路径,但却有一个性质,即拆除预先指定的一面墙后则建立一条唯一的路径。
A:运行上述生成迷宫的算法,但是不要删除指定的一面墙,设S1和S2是这面墙的两边的矩形。不要删除任何可以使S1与终止点连通的墙,同时不要删除任何将导致S2与开始点连通的墙,不断运行程序直到只剩下两个不相交集合。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值