数据结构问题,求解答,谢谢!
6.二维数组A按行优先顺序存储,其中每个元素占1个存储单元。若A[1][1]的存储地址为420,A[3][3]的存储地址为446,则A[5][5]的存储地址为多少?...
6. 二维数组A按行优先顺序存储,其中每个元素占1个存储单元。若A[1][1]的存储地址为420,A[3][3]的存储地址为446,则A[5][5]的存储地址为多少?
展开
3个回答
展开全部
答案 : 472
行优先存储明白吗?就是一行一行的存,不是一列一列的存。
题目告诉了A[1][1]和A[3][3]的存储地址,是想让你推算出A数组的大小。由于A[1][1]的地址是420,所以A[1][0]的地址就是419,还有A[3][3]的地址是446,那么A[3][0]的地址就是443。从A[1][0]到A[3][0],恰好实用了2行,(443-419)/ 2 = 12,也就是说数组A的大小是A[12][N],N没必要算出来,也算不出来。这样就知道了A[5][0]的地址是 419 + 12 * 4 = 467,那么A[5][5]就是467+5 = 472 了。
行优先存储明白吗?就是一行一行的存,不是一列一列的存。
题目告诉了A[1][1]和A[3][3]的存储地址,是想让你推算出A数组的大小。由于A[1][1]的地址是420,所以A[1][0]的地址就是419,还有A[3][3]的地址是446,那么A[3][0]的地址就是443。从A[1][0]到A[3][0],恰好实用了2行,(443-419)/ 2 = 12,也就是说数组A的大小是A[12][N],N没必要算出来,也算不出来。这样就知道了A[5][0]的地址是 419 + 12 * 4 = 467,那么A[5][5]就是467+5 = 472 了。
展开全部
先根据A[3][3]的地处可以知道有12列,466=420+((3-1)*x+3-1)*1 所以x=12;
然后根据按行存储公式LOC[I,J]=10+((I-1))*n+j-1)*L;
可以得到A[5][5]=420+((5-1)*12+5-1)*1=472;
然后根据按行存储公式LOC[I,J]=10+((I-1))*n+j-1)*L;
可以得到A[5][5]=420+((5-1)*12+5-1)*1=472;
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
行存储,Loc(A[3][3])=Loc(A[1][1])+((3-1)×n+(3-1))*L
=420+2n+2
Loc(A[3][3])=446.这样,n=8
Loc(A[5][5])=])=Loc(A[1][1])+((5-1)×8+(5-1))*1=420+36=456
=420+2n+2
Loc(A[3][3])=446.这样,n=8
Loc(A[5][5])=])=Loc(A[1][1])+((5-1)×8+(5-1))*1=420+36=456
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询