第5章 数组与广义表

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第5章数组与广义表

【数组基础知识题】

1.假设有二维数组A6×8,每个元素用相邻的 6 个字节存储,存储器按字节编址。已知 A 的起始存储位

置(基地址)为1000,计算:

(1) 数组A 的体积(即存储量);

(2) 数组A 的最后一个元素a57的第一个字节的地址;

(3) 按行存储时,元素a14的第一个字节的地址;

(4) 按列存储时,元素a47的第一个字节的地址。

2. 假设按低下标优先存储整数数组A9×3×5×8时,第一个元素的字节地址是100,每个整数占四个字节。问下列元素的存储地址是什么?

(1) a0000(2) a1111(3) a3125(4) a8247

3. 按高下标优先存储方式(以最右的下标为主序),顺序列出数组A2×2×3×3中所有元素a ijkl,为了简化表达,可以只列出(i,j,k,l) 的序列。

4. 将下面的式子改写为一个等式的形式。

5. 设有上三角矩阵(a ij)n×n,将其上三角元素逐行存于数组B[m] 中( m 充分大) ,使得B[k]=a ij且k=f1(i)+f2(j)+c。试推导出函数f1,f2和常数c (要求f1和f2中不含常数项)。

6. 设有三对角矩阵(a ij)n×n,将其三条对角线上的元素存于数组B[3][n] 中,使得元素B[u][v]=a ij,试推导出从(i,j) 到(u,v) 的下标变换公式。

7. 设有三对角矩阵(a ij)n×n,将其三条对角线上的元素逐行地存于数组B[3n-2] 中,使得B[k]=a ij,求:

(1) 用i,j 表示k 的下标变换公式;

(2) 用k 表示i,j 的下标变换公式。

【广义表基础知识题】

1. 求下列广义表操作的结果:

(1) GetHead【(p,h,w)】;

(2) GetTail【(b,k,p,h)】;

(3) GetHead【((a,b),(c,d))】;

(4) GetTail【((a,b),(c,d))】;

(5) GetHead【GetTail【((a,b),(c,d))】】;

(6) GetTail【GetHead【((a,b),(c,d))】】;

(7) GetHead【GetTail【GetHead【((a,b),(c,d))】】】;

(8) GetTail【GetHead【GetTail【((a,b),(c,d))】】】。

注意:【】是函数的符号。

2. 利用广义表的GetHead 和GetTail 操作写出如上题的函数表达式,把原子banana 分别从下列广义表中分离出来。

(1) L1 = (apple,pear,banana,orange);

(2) L2 = ((apple,pear),(banana,orange));

(3) L3 = (((apple),(pear),(banana),(orange)));

(4) L4 = (apple,(pear),((banana)),(((orange))));

(5) L5 = ((((apple))),((pear)),(banana),orange);

(6) L6 = ((((apple),pear),banana),orange);

(7) L7 = (apple,(pear,(banana),orange));

3. 按5.5.1节中所示结点结构,画出下列广义表的存储结构图,并求它的深度。

(1) ((( )), a, ((b, c), ( ), d), (((e))))

(2) ((((a), b)), ((( ), (d)), (e, f)))

4. 已知右侧各图为广义表的存储结构图,其结点结构和

5.5.1节相同。写出各图表示的广义表。

相关文档
最新文档