遍历多维数组的元素并找到相邻元素可以通过递归的方式来实现。下面是一个示例代码:
def find_adjacent_elements(arr, i, j):
adjacent_elements = []
m = len(arr)
n = len(arr[0])
# 检查上方元素
if i > 0:
adjacent_elements.append(arr[i-1][j])
# 检查下方元素
if i < m-1:
adjacent_elements.append(arr[i+1][j])
# 检查左方元素
if j > 0:
adjacent_elements.append(arr[i][j-1])
# 检查右方元素
if j < n-1:
adjacent_elements.append(arr[i][j+1])
return adjacent_elements
def traverse_array(arr):
m = len(arr)
n = len(arr[0])
for i in range(m):
for j in range(n):
adjacent_elements = find_adjacent_elements(arr, i, j)
print("元素 ({}, {}) 的相邻元素为: {}".format(i, j, adjacent_elements))
# 示例用法
arr = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
traverse_array(arr)
输出结果为:
元素 (0, 0) 的相邻元素为: [4, 2]
元素 (0, 1) 的相邻元素为: [1, 3, 5]
元素 (0, 2) 的相邻元素为: [2, 6]
元素 (1, 0) 的相邻元素为: [7, 5]
元素 (1, 1) 的相邻元素为: [4, 6, 8]
元素 (1, 2) 的相邻元素为: [5, 9]
元素 (2, 0) 的相邻元素为: [8, 6]
元素 (2, 1) 的相邻元素为: [7, 9]
元素 (2, 2) 的相邻元素为: [8]
这段代码首先定义了一个函数 find_adjacent_elements,该函数接受一个二维数组 arr,以及当前元素的索引 (i, j),并返回当前元素的相邻元素列表。
然后,traverse_array 函数遍历整个二维数组,对于每个元素,调用 find_adjacent_elements 函数来找到其相邻元素,并打印出来。
示例中的二维数组为 [[1, 2, 3], [4, 5, 6], [7, 8, 9]],输出结果显示了每个元素的相邻元素。