网站大量收购独家精品文档,联系QQ:2885784924

数据结构 第5章 数组和广义表解析.ppt

  1. 1、本文档共69页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
关键问题:如何确定每个三元组在B中的位置 A中某个三元组在B的中位置= 每列的第一个非零元素在数组B中应有的位置 + 每一列在它之前非零元素的个数 十字链表 设行指针数组和列指针数组,分别指向每行、列第一个非零元 结点定义 上机作业 上机实现矩阵的转置(采用“压缩转置”或者“快速转置”) D A B C e a b c d ② A=( a , (b, A) ) 例3:试用图形表示下列广义表. (设 代表原子, 代表子表) ① D=(A,B,C)=( ( ),(e),( a, (b,c,d) ) ) A a b ①的长度为3,深度为3 ②的长度为2,深度为∞ 深度=括号的最大重数= 结点的最大层数 5.5 广义表的存储结构 由于广义表的元素可以是不同结构(原子或列表),难以用顺序存储结构表示,通常用链式结构,每个元素用一个结点表示。 1.原子结点 2.表结点 注意:列表的“元素”还可以是列表,所以结点可能有两种形式 方法1:表头、表尾表示法 表结点: 原子结点: 5.5 广义表的存储结构 value tag=0 标志域 数值域 tp hp tag=1 标志域 表头指针 表尾指针 ① A =( ) ^ 1 0 e ③ C =( a ,( b , c , d ) ) 1 ^ 1 1 0 a 0 b 0 d 0 c 1 ^ 1 例: ② B=( e ) A=NULL ^ ^ 1 5.5 广义表的存储结构 ⑤ E=(a, E) ④ D=(A,B,C)= (( ),(e),(a,(b,c,d))) 0 a ^ 1 1 ^ 1 0 e 1 ^ 1 1 ^ 1 1 0 a 0 b 0 d 0 c 1 ^ 1 ^ 1 5.5 广义表的存储结构 tp atom tag=0 标志域   值域 指向下一个元素结点 方法2:子表表示法 tp hp tag=1 标志域 表头指针 指向下一个元素结点 表结点: 原子结点: 5.5 广义表的存储结构 ① A =( ) ^ 1 ③ C =( a ,( b , c , d ) ,e) ^ 1 b 0 0 a c 0 ^ d 0 例: ② B=( e ) A=NULL ^ ^ 1 ^ e 0 1 B C ^ e 0 本章小结 理解数组的逻辑结构是线性结构的推广; 掌握数组在行优先存储和列优先存储结构中的地址计算方法(注意我们所讲的公式前提是在数组各下界为0) 掌握对特殊矩阵进行压缩存储时的下标变换公式; 理解稀疏矩阵的三种压缩存储方法的特点和适用范围,以三元组表示稀疏矩阵时进行矩阵转置所采用的处理方法; 掌握广义表的定义,以及表头和表尾的求解; * * * * * * * * 2. 三角矩阵 1 4 4 4 4 2 3 4 4 4 3 6 5 4 4 4 7 9 7 4 5 8 1 2 9 1 2 3 3 6 5 … … 4 如何确定一维数组的大小? 设:在下三角阵中, 则:如何确定元素Aij在一维数组中的位置? 3.三对角矩阵 1 1 0 0 0 2 3 7 0 0 0 4 5 3 0 0 0 6 7 5 0 0 0 8 9 如何确定一维数组的大小? 如何确定元素Aij在一维数组中的位置? 1 1 2 3 7 4 5 3 6 7 5 8 9 在Aij之前有i行,共有3*i-1个非零元素, 在第i行, aij之前有j-i+1个非零元素, 3*i-1+(j-i+1) = 2*i+j 程序员试题 2004-1 对矩阵压缩存储的主要目的是____。 A.方便运算 B.节省存储空间   C.降低计算复杂度 D.提高运算速度 2003 将一个三对角矩阵A[l..100,1..100]中的元素按行存储在一维数组B[l..298]中,矩阵A中的元素A[66,65]在数组B中的下标为______。 A.195 B.196 C.197 D.198 5.2.3 稀疏矩阵的压缩存储 顺序存储:三元组表 链式存储:十字链表 1.三元组表存稀疏矩阵 考虑: 只存非零元素 一个非零元素的必需信息有: (i, j, aij) 记录一个稀疏矩阵的必需信息有: 行数M,列数N,非零元素个数T 1 2 0 0 5 0 3 0 0 0 0 4 0 0 0 0 0 6 0 0 0 0 0 8 0 i j Aij 0 0 1 0 1 2 0 4 5 1 1 3 2 1 4 3 2 6 4 3 8 M=5 N=5 T=7 三元组表的C语言描述

文档评论(0)

little28 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档