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

第12章高级数据结构.ppt

  1. 1、本文档共64页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第12章;主要内容;12.1 多维数组;数组类型特点: 数组一般不做插入、删除操作,一旦建立数组,结构 中的数据元素个数和元素之间的关系不再发生变动。 2) 数组是多维的结构,而存储空间是一个一维的结构。;例如: ;若矩阵元素有规律地排列,则称为特殊矩阵。例如:对称矩阵,三角矩阵 ...;二维数组是表示矩阵的最简单方法 三角矩阵可以被分为上三角矩阵和下三角矩阵,它是指n阶矩阵中的下(上)三角的元素都是0或者一个常数c。 在上三角矩阵中,当数组的下标ij时,数组元素a[i][j]=c;而在下三角矩阵中,当下标ij时,a[i][j]=c。;;用数组表示特殊矩阵;为了节省空间,存储其下三角的值,而对角线之上的值通过对称关系映射过去。 以一维数组sa[0..n(n+1)/2-1]作为n阶对称矩阵A的存储结构,则sa[k]和矩阵元ai,j之间存在着一一对应的关系 :;稀疏矩阵 ;1 2 14;3 0 0 2 0 -1 0 0 2 0 0 0;12.2 广义表 ; L=(x0,x1,…,xi,…,xn-1) L是广义表的名称 n为长度 xi(0≤i≤n-1)是L的成员,它可以是单个元素(原子),也可以是一个广义表(子表);;广义表的结构特点:;3) 广义表的深度定义为所含括弧的重数; 注意:“原子”的深度为 0 ; “空表”的深度为 1 。;6) 任何一个非空广义表 LS = ( ?1, ?2, …, ?n) 均可分解为 表头 Head(LS) = ?1 和 表尾 Tail(LS) = ( ?2, …, ?n) 两部分; 广义表的各种类型;广义表的存储;广义表存储ADT;表头、表尾分析法:;L = ( a, ( x, y ), ( ( x ) ) );12.3 Trie结构和Patricia树; 对象空间分解;关键码空间分解 ;Trie结构 ;Trie结构特点;Trie结构应用:“字符树” ;英文字符树 ;字符树的改进 ;字符树中的检索 ;Trie字符树的缺陷;PATRICIA 结构;PATRICIA 结构图;PATRICIA 结构图;PATRICIA的特点;12.4 二叉树结构的改进 ;12.4.2 平衡的二叉搜索树(AVL) ;AVL树的性质;;平衡因子;AVL树结点的插入;二叉搜索树的平衡旋转;RR型;LR型;RL型;插入下列单词得到的AVL树: cup,cop, copy, hit, hi, his, hia;插入下列单词后得到的AVL树: cup ,cop, copy, hit, hi, his, hia;AVL树的效率 ;第 4 章 字符串(了解);字符串的模式匹配;int NaiveStrMatching(const String T,const String P) { int i = 0, j = 0; int pLen = P.length(); //模式长度 int tLen = T.length(); //主串长度 if (tLen pLen) return -1; while (i pLen j tLen) { if (T[j] == P[i]) { i++; j++; } else { j = j – i + 1; i = 0; } } if (i = pLen) return j – pLen +1; else return -1; } ;时间复杂度;改进办法1;改进办法2;改进办法3;ababcabcacbab;next函数;next函数;a b a a b c a c;int KMPStrMatching(const String T,const String P,int *N) { int i=0, j=0; int pLen=P.length(); //模式长度 int tLen=T.length(); //主串长度 if (tLenpLen) return -1; while (ipLenjtLen){ if (i==-1||P[i]==T[j]) {i++;j++;} else i=N[i]; } if (i=pLen]) return (j-pLen+1); else return -1;

文档评论(0)

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

分享好文档!

1亿VIP精品文档

相关文档