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代码实现二维数组连通区域标记算法,并提供了详细的代码示例和输出结果。希望对您有所帮助!

Python实现二维数组连通区域标记算法

原文地址: https://www.cveoy.top/t/topic/eNUw 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录