数组与广义表的课堂练习解析

需积分: 9 0 下载量 50 浏览量 更新于2024-08-20 收藏 701KB PPT 举报
"这篇资料是关于数组和广义表的课堂练习,主要涉及二维数组的存储方式、元素地址计算以及数组体积的计算。" 在计算机科学中,数组是一种基础的数据结构,它由一组名字相同但下标不同的变量构成。数组的特点包括:所有元素拥有统一的数据类型、固定的上下界(维数和维界不可变)、可以视为特殊的线性表,其中元素可以是更复杂的结构。数组的基本操作主要包括存取和修改元素。 数组的顺序存储结构是指将数组元素按照一定的顺序排列成一维序列并存储在内存中。在二维数组中,有两种常见的存储方式:按行存储和按列存储。按行存储意味着先存储第一行的所有元素,然后是第二行,以此类推;而按列存储则是先存储第一列,接着是第二列,依此类推。不同的存储方式会影响元素地址的计算公式。 课堂练习中提到了三个问题: 1. 考虑到一个二维数组A,其行下标从1到6,列下标从0到7,每个元素占用6个字节,如果存储器按字节编址,那么这个数组的体积(总字节数)是(6行 * (7列 + 1) * 6字节/元素 = 252字节)。 2. 对于数组A,每个元素长度为3字节,行下标i从1到8,列下标j从1到10,按行存储的情况下,元素A[8,5]的地址可以通过公式计算:(首地址SA + (列下标 - 1) * 每行元素个数 * 每个元素的字节数 + (行下标 - 1) * 每个元素的字节数)。因此,A[8,5]的地址是SA + (5 - 1) * 3 * 10 + (8 - 1) * 3 = SA + 141,所以正确答案是A.SA+141。 3. 第三个问题是关于一个以列序为主序存储的数组a[0…5,0…6],基地址为1000,每个元素占5个存储单元。元素a[4][5]的地址计算公式是(基地址 + (列下标 - 1) * 每列元素个数 * 每个元素的字节数 + (行下标 - 1) * 每个元素的字节数)。所以a[4][5]的地址是1000 + (5 - 1) * 6 * 5 + (4 - 1) * 5 = 1000 + 120 + 15 = 1135。 以上解答详细解释了数组的概念、存储方式以及如何根据题目描述计算数组元素的地址。这些知识对于理解数组在计算机内存中的表示和操作至关重要,是数据结构学习的基础。