数据结构chapter_05
2019-06-19 13:24:00 9 举报
AI智能生成
数据结构java第五章
作者其他创作
大纲/内容
数组
定义
数组是数据结构的基本结构形式,它是一种顺序式的结构,数组是存储同一类型数据的数据结构。
数组是顺序存储的随机存取结构,数组是其他数据结构实现顺序存储的基础。
使用数组时需要定义数组的大小和存储数据的数据类型。
一维数组
一个下标为一维数组,一个下标以上为多维数组
数组为二元组<下标 , 值>的一个集合
依照顺序存储,逻辑与物理地址连续,第一个地址为Loc(A0),则第i个元素的地址为:Loc(ai) = Loc(a0) + i* c
静态数组
声明时给出数组元素个数。当程序开始运行时,数组即获得系统分配的一块地址连续的内存空间。静态数组所占用的内存空间由系统自动管理。
动态数组
声明时不指定数组长度。当程序运行中需要使用数组时,向系统申请数组的存储单元空间,并给出数组长度。当数组使用完之后,需要向系统归还所占用的内存空间。
多维数组
二维数组的顺序存储结构
二维数组是m*n的二维数组
行主序
列主序
特殊矩阵的压缩存储
矩阵类
上三角矩阵的压缩
生成链式表
现行压缩存储三角矩阵
Loc(Ai,j) = Loc(Ao,o) + 1 + 2 + 3 + 4 + i + j = Loc(Ao,o) + i *(i + 1)/2 + j (0 <= j <=i <n)
稀疏矩阵非零元素的三元组类Triple
系数矩阵的三元组顺序表
稀疏矩阵三元组的单链表
十字链表的稀疏矩阵类
广义表
抽象数据类型
定义
广义表是线性表的扩展,具体定义为n个元素有限集合
一个原子元素(指不可再分的元素)
一个可以再分的元素(或称为一个子表)
特性
线性结构
可共享
多层次结构,有深度
可递归
存储结构
一般采用链式存储,采用链表存储时的结点存储结构一般为
flag表示标志位,当flag为1时,该结点表示原子元素,当flag为0时,该节点表示子表;当flag为1时,info表示原子元素的值,当flag为0时,info表示指针指向该子表的第一个结点;link表示指针,指向广义表的下一个元素
双链的实现
m元多项式的广义表表示
0 条评论
下一页