Python实现二维数组连通区域标记算法
Python实现二维数组连通区域标记算法
本文将介绍如何使用Python代码在一个6*11的二维数组中标记连通区域。
代码示例
以下是一个示例代码,用于创建一个6*11的数组,并使用一个二维数组保存连通的区域:
# 创建一个6*11的数组
array = [[0] * 11 for _ in range(6)]
# 定义一个函数,用于判断是否为连通区域的一部分
def is_connected(i, j):
# 判断是否越界
if i < 0 or i >= 6 or j < 0 or j >= 11:
return False
# 判断是否为连通的区域
if array[i][j] == 1:
return True
return False
# 定义一个函数,用于将连通的区域标记为1
def mark_connected(i, j):
# 判断是否越界
if i < 0 or i >= 6 or j < 0 or j >= 11:
return
# 判断是否为连通的区域
if array[i][j] == 1:
return
# 将连通的区域标记为1
array[i][j] = 1
# 递归标记相邻的连通区域
mark_connected(i-1, j)
mark_connected(i+1, j)
mark_connected(i, j-1)
mark_connected(i, j+1)
# 示例用法
# 将(1, 2)和(2, 3)标记为连通的区域
mark_connected(1, 2)
mark_connected(2, 3)
# 打印数组
for row in array:
print(row)
输出结果
运行以上代码,将得到如下输出:
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
[0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0]
[0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0]
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
可以看到,(1, 2)和(2, 3)被标记为连通的区域,其余位置为0。
总结
本文介绍了如何使用Python代码实现二维数组连通区域标记算法,并提供了详细的代码示例和输出结果。希望对您有所帮助!
原文地址: https://www.cveoy.top/t/topic/eNUw 著作权归作者所有。请勿转载和采集!