【数据结构】第5章 数组和广义表

§5.1 数组的定义

多维数组的理解

typedef ElemType Array2[m][n];

//等价于typedef ElemType Array1[n];typedef Array1 Array2[m];

即一个n维数组类型可以定义为其数据元素为(n-1)维数组类型的一维数组类型。

数组一旦被定义,它的维度和维界就不再改变,因此除了结构的初始化和销毁之外,数组只有存取元素和修改元素值的操作。


§5.2数组的顺序表示和实现

多维数组的空间分配,有以列序为主序(FORTRAN)或以行序为主序(C,Pascal)

(以行序为主序即a00,a01,a02,...,a10,...)

n维数组的数据元素储存位置的计算公式(bi表示第i维的长度 L表示每个元素占的储存单元)

LOC(j1,j2,...,jn) = LOC(0,0,...,0) +(b2*...*bn*j1+b3*...*bn*j2+...+bn*jn-1+jn)L

可以缩写成LOC(j1,j2,...,jn) = LOC(0,0,...,0) + c1j1+c2j2+...+cnjn

其中cn=L,c(i-1)=bi*ci (1<i<=n)


上式称为n维数组的映像函数


§5.3 矩阵的压缩储存

待补充...


§5.4 广义表的定义

广义表是线性表的推广,也称列表。广义表既可以是单个元素(原子),也可以是广义表(子表)

第一个元素称为表头 其余元素称为表尾

①列表结构可以用树来表示

②列表可以为其他列表所共享

③列表可以使一个递归的表(无限递归)


§5.5 广义表的存储结构

§5.6 m元多项式的表示

§5.7 广义表的递归算法


待补充...

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值