严蔚敏数据结构学习笔记五.数组和广义表

    技术2022-05-11  57

    第五章,数组和广义表(广义表放入后面章节)

    5.1数组的类型定义数组没有插入删除操作5.2数组的顺序表示和实现类型特点:1)只有引用型操作,没有加工型操作;(没有链式表示)2)数组是多维的结构,而存储空间是一个一维的结构。有两种顺序映象的方式:1)以行序为主序(低下标优先);二维数组A中任一元素aij的存储位置:LOC[i,j]=LOC[0,0]+(b2*i+j)L(每行有b2个元素,L为每个元素所占位置)推广到一般情况,N维数组数据元素存储位置2)以列序为主序(高下标优先);5.3稀疏矩阵的压缩存储假设m行n列的矩阵含t个非零元素,则称δ=t/(m*n)为稀疏因子,通常认为δ<=0.05的矩阵为稀疏矩阵。以常规方法,即以二维数组表示高阶的稀疏矩阵时产生的问题:1)零值元素占的空间很大;2)计算中进行了很多和零值的运算;解决问题的原则:1)尽可能少存或不存零值元素;2)尽可能减少没有实际意义的运算;3)运算方便;即:能尽可能快地找到与下标值(i,j)对应的元素;能尽可能快地找到同一行或同一列的非零值元。1,特殊矩阵的压缩存储如:三角矩阵,对角矩阵2,随机稀疏矩阵的压缩存储(随机矩阵中的非零元分布不规则)以下为其三中表示方法一,三元组顺序表二,行逻辑联接的顺序表相乘算法的时间复杂度相当于O(m*p)三,十字链表

    5.4广义表的结构特点: 1,广义表中的数据元素有相对次序; 2,广义表的长度定义为最外层包含元素个数; 3,广义表的深度定义为所含括弧的重数;(“原子”的深度为0,空表的深度为1) 4,广义表可以共享; 5,广义表可以是一个递归的表; 递归表的深度是无穷值,长度是有限值。 6,任何一个非空广义表均可分解为表头,表尾两部分,表头可能 是原子也可能是广义表,表尾 一定是广义表 5.5广义表的表示方法头,尾指针的链表结构:表结点,原子结点 广义表存储结构的两种分析方法:一,为分为表头和表尾然后逐次递归,二,为分为各个子表

    最新回复(0)