- 1、本文档共61页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
7.4 并查集 合并操作的时间复杂度:取决于查找长度,即树的高度。因此,降低操作时间复杂度即降低树的高度。 两种常用的方法 路径压缩(path compression)法:在查找结点所在树的根结点的过程中,令查找路径上的每个结点直接指向根结点。 int FindMFSet_CP(MFSet S, int i) 带路径压缩的查找操作 int FindMFSet_PC(MFSet S, int i) { // 查找i在并查集S中所属子集,返回集合代表 if(i0 || i=S.n) return -1; if(S.parent[i]0) return i; // 找到根结点 S.parent[i] = FindMFSet_PC(S, S.parent[i]); // i的双亲结点值置为根结点 return S.parent[i]; } 3 4 -1 3 0 1 2 3 5 7 3 4 5 6 6 6 4 7 8 9 3 3 3 9.5 B树 二叉查找树和平衡二叉树都是典型的二叉查找树结构,其查找的时间复杂度与树的高度相关,降低树的高度自然对查找效率有所帮助。为了降低树的高度,可令每个结点存储多个元素,并将平衡二叉查找树拓展为平衡多叉查找树。 R.Bayer和E.M.McCreight提出了一种称为B树的平衡多叉查找树,用于构建磁盘文件索引。 7.5.1 B树的定义 一棵m阶B树(Balanced Tree of order m),或为空树,或为满足下列特 性的m叉树: (1)树中每个结点最多含有m棵子树; (2)若根结点不是叶子结点,则至少有2个子树; (3)除根结点之外的所有非终端结点至少有?m/2?棵子树; (4)每个非终端结点中包含信息:(n,A0,K1,A1,K2,A2,...... ,Kn,An)。其中: 1)Ki (1≤i≤n)为关键字,且关键字按升序排序; 2)指针Ai(0≤i≤n)指向子树的根结点,Ai-1指向子树中所有结点的 关键字均小于Ki,且大于Ki-1; 3)关键字的个数n必须满足:?m/2?-1≤n≤m-1。 (5)所有叶子结点都出现在同一层,叶子结点不包含任何信息。 7.2 树的存储结构 存储结构要点:存储各结点本身的信息,还能表示树中各结点之间存在的关系。 7.2.1 双亲表示法 7.2.2 双亲孩子表示法 7.2.3 孩子兄弟表示法 7.2.1 双亲表示法 在树中,除根结点没有双亲(即父结点)外,其他结点的双亲是唯一确定的。 双亲表示法用数组存储树中结点及其关系。数组中的每个分量含有两个域: 元素值data和该结点的双亲位置parent。 B C D E F A 7.2.1 双亲表示法 树的双亲存储结构的类型定义如下: typedef struct PTNode { TElemType data; // 元素值 int parent; // 双亲位置,根结点的parent值为-1 } PTNode; // 结点类型 typedef struct { PTNode *nodes; // 由初始化操作分配的结点数组 int r, nodeNum; // 根位置和结点数 } PTree; // 树的双亲存储结构类型 7.2.2 双亲孩子表示法 双亲孩子表示法是对双亲表示法的扩展,为各结点构造孩子单链表。结点数组增加一个firstChild域作为结点的孩子链表的头指针。在孩子链表中,每个结点包含孩子在结点数组的位置childIndex和指向下一个孩子结点的指针nextChild。 B C D E F A 7.2.2 双亲孩子表示法 树的双亲孩子存储结构的类型定义为 typedef struct ChildNode { int childIndex; // 孩子在结点数组的位置 struct ChildNode *nextChild; // 下一个孩子 } ChildNode; // 孩子结点类型 typedef struct { TElemtype data; // 元素值 int parent; // 双亲位置 struct ChildNode *firstChild; /
您可能关注的文档
- ch11 数据库新技术学习 文档 参考.ppt
- ch10 数据库应用系统设计.ppt
- 第2章 计算机系统学习 文档 参考.pptx
- 第三章 MAC协议学习 文档 参考.pptx
- ch9 关系数据库的规范化.ppt
- ch8 数据库安全学习 文档 参考.ppt
- ch7 T-SQL应用编程学习 文档 参考.ppt
- ch6 存储过程与触发器.ppt
- ch5 索引及视图操作.ppt
- ch4 数据库、表及数据操作.ppt
- TGXAS-艾滋病常见病症中医外治规范.pdf
- DB44T1841-2016 有机乌龙茶生产技术规程.pdf
- DB1404T19-2021 消毒用UVCLED术语与定义.pdf
- DB62T1120-2024 绿色食品 蚕豆生产技术规程.pdf
- DB53T1300-2024 烤烟地膜覆盖与回收技术规程.pdf
- DB37T4649.2-2023 智能制造第2部分:智能工厂评价体系指南_地方标准.pdf
- TNNCP3-2020 食品安全-南漳银杏.pdf
- DB65T3650-2014 零散烈士纪念设施保护管理规范.pdf
- DJG330212T-宁波市鄞州区党政机关单位节能管理规范.pdf
- DB65T3844-2016 雪菊收购分级质量要求.pdf
文档评论(0)