绑定完请刷新页面
取消
刷新

分享好友

×
取消 复制
数据结构(C语言版)---数组、广义表和压缩存储
2020-05-20 17:23:02

1、数组:由n个相同类型的数据元素构成的有限序列。

2、一维数组可视为一个线性表,二维数组可视为元素是线性表的线性表。

3、一维数组的存储结构关系式

LOC(ai)=LOC(a0)+i*L;L是每个数组元素所占的存储单元。

多维数组的存储有两种:按行优先和按列优先。

4、压缩存储:为多个值相同的元素只分配一个存储空间,对零元素不分配存储空间。

5、特殊矩阵:如对称矩阵、三角矩阵、对角矩阵(又称带状矩阵)。

6、对称矩阵:一维数组存储,假设只存放主对角线和下三角区的元素。i为行,j为列。

元素下标的关系:k=i(i-1)/2+j-1(i>=j,下三角区和主对角线元素);k=j(j-1)/2+i-1(i<j,上三角区元素);数组下标从0开始。

7、三角矩阵:

1)下三角矩阵

a1,1(行)a2,1a2,2(第二行)a3,1a3,2a3,3(第三行)...an,1an,2...an,n(第n行)c(常数项)

元素与下标的关系:k=i(i-1)/2+j-1(i>=j,下三角区和主对角线元素);k=n(n+1)/2(i<j,上三角区元素)。

2)上三角矩阵

a1,1a1,2...a1,n(行)a2,2a2,3...a2,n(第二行)...an,n(第n行)c(常数项)

元素与下标的关系:k=(i-1)(2n-i+2)/2+j-i(i<=j,上三角区和主对角线元素);k=n(n+1)/2(i>j,下三角区元素)。

8、三对角矩阵:所有非零元素都集中在以主对角线为中心的3条对角线区域,其他区域的元素为0。

a1,1a1,2a2,1a2,2a2,3...an-1,nan,n-1an,n

元素与下标的关系:k=2i+j-3。

9、稀疏矩阵:采用三元组存储元素。

10、广义表,LS=(s1,a2,...,an),LS为广义表的名称,n为广义表的长度,ai为单个元素或广义表,分别称为原子和子表。

LS非空时,a1为表头,其余元素组成的表称为表尾。

例子:

A=():A为空表,长度为0。

B=(e):广义表B只有一个原子e,长度为1。

C=(a,(b,c,d)):广义表C,两个元素分别为原子a,子表(b,c,d),长度为2。

D=(A,B,C):广义表D,三个元素均是子表,长度为3。

E=(a,E):广义表E,E为递归表,长度为2。

F=(()):广义表F,长度为1,表头表尾均为空表。

分享好友

分享这个小栈给你的朋友们,一起进步吧。

数据架构
创建时间:2020-05-20 11:23:41
有关数据架构的小栈里面全都有
展开
订阅须知

• 所有用户可根据关注领域订阅专区或所有专区

• 付费订阅:虚拟交易,一经交易不退款;若特殊情况,可3日内客服咨询

• 专区发布评论属默认订阅所评论专区(除付费小栈外)

技术专家

查看更多
  • 小雨滴
    专家
戳我,来吐槽~