遍历矩阵中的所有主要对角线的方法可以通过两种方式实现:迭代和递归。
def traverse_primary_diagonal(matrix):
rows = len(matrix)
cols = len(matrix[0])
# 遍历矩阵的左上角到右下角的主要对角线
for i in range(min(rows, cols)):
print(matrix[i][i])
def traverse_primary_diagonal_recursive(matrix, row, col):
rows = len(matrix)
cols = len(matrix[0])
# 递归的出口条件,当行或列超过矩阵的范围时结束
if row >= rows or col >= cols:
return
# 输出当前主要对角线上的元素
print(matrix[row][col])
# 递归遍历下一个主要对角线的元素
traverse_primary_diagonal_recursive(matrix, row+1, col+1)
示例调用:
matrix = [[1, 2, 3],
[4, 5, 6],
[7, 8, 9]]
print("迭代方法:")
traverse_primary_diagonal(matrix)
print("递归方法:")
traverse_primary_diagonal_recursive(matrix, 0, 0)
输出结果:
迭代方法:
1
5
9
递归方法:
1
5
9
以上代码示例演示了如何遍历矩阵中的所有主要对角线,迭代方法使用一个循环来遍历对角线上的元素,而递归方法使用递归函数来遍历对角线上的元素。