第5章节 多维数组和广义表.ppt

第5章节 多维数组和广义表

A =( ) B =(e) C =(a, (b,c,d)) D =(A, B, C) E =(a, E) F =(( )) A =( ) B =(e) C =(a, (b,c,d)) D =(A, B, C) E =(a, E) F =(( )) A =( ) B =(e) C =(a, (b,c,d)) A =( ) B =(e) C =(a, (b,c,d)) D =(A, B, C) E =(a, E) F =(( )) tag=1 hp tp tag=0 data 表结点 元素结点 tag:区分表结点和元素结点的标志; hp:指向表头结点的指针; tp:指向表尾结点的指针; data:数据域,存放单元素。 广义表的存储结构——头尾表示法 广义线性表——广义表 结点结构 enum Elemtag {Atom, List}; struct GLNode { Elemtag tag; union { datatype data; struct { GLNode *hp, *tp; } ptr; }; }; 广义线性表——广义表 广义表的存储结构——头尾表示法 定义结点结构 tag=1 hp tp tag=0 data 广义线性表——广义表 广义表的存储结构——头尾表示法 NULL A 1 B 0 e ∧ 1 C 0 a ∧ 1 1 0 b 1 0 c ∧ 1 0 d 广义线性表——广义表 广义表的存储结构——头尾表示法 1 B 0 e ∧ 1 C 0 a ∧ 1 1 0 b 1 0 c ∧ 1 0 d 1 D ∧ 1 1 ∧ 矩阵的压缩存储 0 0 15 0 3 22 0 5 -15 1 1 11 1 2 3 2 3 6 4 0 91 空 空 空 闲 闲 闲 row col item 0 1 2 3 4 5 6 MaxSize-1 5(矩阵的行数) 6(矩阵的列数) 7(非零元个数) 0 0 15 0 4 91 1 1 11 2 1 3 3 0 22 3 2 6 5 0 -15 空 空 空 闲 闲 闲 row col item 0 1 2 3 4 5 6 MaxSize-1 6(矩阵的行数) 5(矩阵的列数) 7(非零元个数) 三元组顺序表转置算法——算法Ⅰ 基本思想:直接取,顺序存。即在A的三元组顺序表中依次找第0列、第1列、…直到最后一列的三元组,并将找到的每个三元组的行、列交换后顺序存储到B的三元组顺序表中。 矩阵的压缩存储 矩阵的压缩存储 0 0 15 0 3 22 0 5 -15 1 1 11 1 2 3 2 3 6 4 0 91 空 空 空 闲 闲 闲 row col item 0 1 2 3 4 5 6 MaxTerm-1 5(矩阵的行数) 6(矩阵的列数) 7(非零元个数) row col item 0 1 2 3 4 5 6 MaxTerm-1 6(矩阵的行数) 5(矩阵的列数) 7(非零元个数) 设置矩阵B的行数、列数、非零元个数 矩阵的压缩存储 0 0 15 0 3 22 0 5 -15 1 1 11 1 2

文档评论(0)

1亿VIP精品文档

相关文档