对于给定的数组a[n][2n-1],将3个顶点分别为a[0][n-1],a[n-1][0],a[n-1][2n-2]的三角形上的所有元素按行序存放在一维数组B[nxn]中,给出i,j,k的对应关系
时间: 2023-11-30 15:27:31 浏览: 141
2012—2013学年第二学期《数据结构》A卷及答案1
假设三角形上的所有元素按行序存放在一维数组A[1~n(n+1)/2]中,则可以通过以下方式将其转化为B[nxn]中的元素:
1. 首先计算出B中元素的行列坐标:
- 对于A中的第i个元素,其在B中的行号为:row(i) = floor((sqrt(8i-7)-1)/2),其中floor表示向下取整。
- 对于A中的第i个元素,其在B中的列号为:col(i) = i - row(i) * (row(i)+1) / 2 - 1。
2. 然后将A中的第i个元素赋值给B中的第row(i)行、第col(i)列的元素,即:B[row(i)][col(i)] = A[i]。
通过上述方式,可以将三角形上的所有元素按行序存放在B[nxn]中,并且满足题目中给定的三个顶点分别为B[0][n-1]、B[n-1][0]和B[n-1][2n-2]。注意,上述方式中的row和col都是从0开始计数的。
阅读全文