数据结构4(数组和广义表)

本文介绍了二维数组的存储结构,包括按行和按列存储时的元素位置计算,并通过实例解析了数组元素地址转换。此外,还讨论了广义表的结构,包括如何提取广义表中的原子项以及广义表的长度和深度计算。最后,提供了相关习题及解答,帮助读者深入理解数组和广义表的操作。
摘要由CSDN通过智能技术生成

第4章  数组和广义表

【例4-1】二维数组A的每一个元素是由6个字符组成的串,其行下标i=0,1,…,8,列下标j=1,2,…,10。若A以行为主序存储元素,A[8][5]的物理地址与当A按列为主序存储时的元素(  )的物理地址相同。设每个字符占一个字节。

A.A[8][5]    B.A[3][10]    C.A[5][8]    D.A[0][9]

//作图

 

解:  二维数A是一个9行10列的矩阵,即A[9][10]。按行存储时,A[8][5]是第85个元素存储的元素。而按列存储时,第85个存储的元素是A[3][10]。即正确答案为B。

【例4-2】若对n阶对称矩阵A以行序为主序方式将其下三角形的元素包括主对角线上所有元素)依次存放于一维数组B[n(n+1)/2]中,则在B中确定的位置k的关系为(  )。

A.  B.  C.  D.

解:  如果a按行存储,那么它的前面有i-1行,其有元素个数为:

1+2+3+…+(i-1)=i(i-1)/2。同时它又是所在行的第j列,因此它排列的顺序还得加上j,一维数组B[n(n+1)/2]中的位置k与其下标的关系是:。

因此答案为A。

 

【例4-3】已知n阶下三角矩阵A,按照压缩存储的思想,可以将其主对角线以下所有元素(包括主对角线上元素)依次存放于一维数组B中。请写出从第一列开始以列序为主序分配方式时在B中确定元素a的存放位置的公式。

 

 

解:  如果a按列存储,那么它的前面有j-1列,共有元素:

n+(n-1)+(n-2)+ …+[n-(j-2)]    //j-1-1

=(j-1)*n-

而它又是所在列的第i行,因此在它前的元素个数还得加上i。因此它在一维数组B中的存储顺序为:

(j-1)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值