一个 n 阶整数对称矩阵 A=(ai,j)(0≤i<m,0≤j<n)进行压缩存储,采用一维数 组 B={bk}按列优先顺序存放其上三角和主对角线的各元素。编写一个程序将 A 压缩存放 在 B 中,输出 B 的元素并通过 B 输出 A 的所有元素。以 n=4 为例用相关数据进行测试。
时间: 2023-05-12 17:06:19 浏览: 118
数据结构:矩阵的压缩存储
以下是将整数对称矩阵 A 压缩存储到一维数组 B 中的程序:
```python
m = 4
n = 4
A = [[1, 2, 3, 4],
[2, 5, 6, 7],
[3, 6, 8, 9],
[4, 7, 9, 10]]
B = [0] * (n * (n + 1) // 2)
k = 0
for j in range(n):
for i in range(j, m):
B[k] = A[i][j]
k += 1
print("B 的元素为:", B)
print("A 的所有元素为:")
for i in range(m):
for j in range(n):
if i >= j:
print(A[i][j], end=" ")
else:
print(A[j][i], end=" ")
print()
```
输出结果为:
```
B 的元素为: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
A 的所有元素为:
1 2 3 4
2 5 6 7
3 6 8 9
4 7 9 10
```
这个程序将整数对称矩阵 A 压缩存储到一维数组 B 中,按列优先顺序存放其上三角和主对角线的各元素。程序还输出了 B 的元素和 A 的所有元素。
阅读全文