`

二叉树等其他数据结构整理

 
阅读更多

深度优先周游:先根次序、后根次序、中根次序。

广度优先周游:逐层访问。

 

哈夫曼树(最优二叉树):叶节点权值之和最小。算法题目常常给若干叶节点,让你构造最优二叉树。只需要从最小的两个叶节点值开始,其父节点为两者之和,并与第三个最小叶节点成为兄弟节点,依次类推,形成最优二叉树。

 

三种经典的数据类型来实现高效的符号表:二叉查找树(B树)、红黑树、散列表。可以看看MYSQL索引的实现,虽然没有用二叉查找树和红黑树,但是用到B+树(多路搜索树)和散列表(hash)。可参考

B+ 的搜索与 B- 树也基本相同,区别是 B+ 树只有达到叶子结点才命中( B- 树可 以在非叶子结点命中),其性能也等价于在关键字全集做一次二分查找;(即B+树的子树个数与根节点关键字个数相同,且关键字出现在叶子节点的链表里),所以mysql索引使用中MyISAM使用B+,但索引文件和数据分开的;叶子节点存放物理地址,InnoDB也使用B+,叶子节点直接存放数据,其数据文件本身按B+结构形成的索引文件。

 

二叉查找数:和快速排序几乎一样。二叉查找树的原则是根节点大于左子节点,小于右子节点。

平衡查找树:为了避免动态插入维持平衡的高代价,所以出现三节点或更多节点,而且每个节点允许保存多个键值。

红黑树:平衡二叉查找树,

      性质1. 节点是红色或黑色。

      性质2. 根节点是黑色。

      性质3 每个叶节点(NIL节点,空节点)是黑色的。

      性质4 每个红色节点的两个子节点都是黑色。(从每个叶子到根的所有路径上不能有两个连续的红色节点)

      性质5. 从任一节点到其每个叶子的所有路径都包含相同数目的黑色节点。

平衡二叉树(AVL树):它的左子树和右子树都是平衡二叉树,且左子树和右子树的深度之差的绝对值不超过1。

 

TreeMap实现采用红黑树却不适用二叉查找树?

其实这个问题就是在问红黑树相对于排序二叉树的优点。我们都知道排序二叉树虽然可以快速检索,但在最坏的情况下:如果插入的节点集本身就是有序的,要么是由小到大排列,要么是由大到小排列,那么最后得到的排序二叉树将变成链表:所有节点只有左节点(如果插入节点集本身是大到小排列);或所有节点只有右节点(如果插入节点集本身是小到大排列)。在这种情况下,排序二叉树就变成了普通链表,其检索效率就会很差。

为了改变排序二叉树存在的不足,红黑树诞生了,它是一个更高效的检索二叉树,因此常常用来实现关联数组。追求的是局部平衡,而不是平衡二叉树的严格平衡。借来一张图展示:

0
0
分享到:
评论

相关推荐

    精心整理史上最全的数据结构flash演示动画,共5个版本,祝大家考研成功!

    精心整理史上最全的数据结构flash演示动画,共5个版本,祝大家考研成功! \数据结构flash演示\版本1 \数据结构flash演示\版本2 \数据结构flash演示\版本3 \数据结构flash演示\版本4 \数据结构flash演示\版本5 ...

    二叉树基本操作+数据结构+实验报告整理.pdf

    二叉树基本操作+数据结构+实验报告整理.pdf

    王道数据结构+C语言版+超全笔记(图文)+个人整理版本

    (一)数据元素、数据结构、抽象数据类型等概念 (二)算法设计的基本要求 (三)语句的频度和估算时间复杂度 二、线性表 (一)线性表的定义和基本操作 (二)线性表的实现 1.顺序存储结构 2.链式存储结构 3.线性表的应用 三...

    18个高级数据结构整理归纳

    东南大学的高级数据结构课程中,学生和教师们一起整理归纳了多个高级数据结构及其内在联系,对这些内容的深入理解有助于学生更好地掌握数据结构的核心知识以及如何在实际问题中选择合适的数据结构。 在数据结构的...

    数据结构 二叉树实验

    在本实验中,主题聚焦于数据结构中的二叉树,特别是如何建立二叉树以及对二叉树进行遍历。二叉树是一种特殊的数据结构,每个节点最多有两个子节点,通常分为左子节点和右子节点。这个实验的目的是帮助学生理解和掌握...

    自考02331数据结构考点整理.pdf

    本章主要介绍数据结构的基本概念,包括数据、数据元素、数据对象、数据结构、数据类型等。理解数据结构的分类,如线性结构、树型结构、图形结构和文件结构,以及抽象数据类型(ADT)的概念至关重要。此外,算法分析...

    数据结构中二叉树、树、森林间的相互转化教程

    数据结构中的树、二叉树和森林是三个重要的概念,它们之间存在相互转化的关系,这对于理解和操作这些数据结构至关重要。二叉树是一种特殊类型的树,其中每个节点最多有两个子节点,分别为左子节点和右子节点。而在...

    专升本数据结构整理(福建省)

    - **数据结构.rar**:可能包含额外的数据结构资源,如代码示例、解题策略等。 - **数据结构试卷.rar**:历年考试试卷能帮助考生熟悉考试题型和难度,了解出题趋势。 - **专升本数据结构.rar**:专门针对福建省...

    题目整理(二叉树).pdf

    以上知识点覆盖了二叉树的基本概念、二叉树的遍历方法、二叉树的深度和高度的计算、二叉树的平衡性判断、二叉树节点的增加与删除等操作,以及实现这些操作所需要的辅助数据结构。这些知识点对于数据结构的学习和考研...

    数据结构复习资料整理

    数据结构是计算机科学中至关重要的基础学科,它研究如何组织和管理数据,以便于高效地进行操作和处理。数据结构主要包括三个核心方面:逻辑结构、存储结构和运算。逻辑结构描述数据元素之间的关系,存储结构是指数据...

    数据结构1800及答案 加精心整理 高清晰 数据结构收藏典范

    5. **树**:是一种分层的数据结构,包括二叉树、平衡树(如AVL树和红黑树)等,常用于查找、排序等操作。 6. **图**:由节点和边组成,用于表示复杂的关系网络,如社交网络、道路网络等,有多种遍历方法如深度优先...

    数据结构教程上机实验指导 李春葆

    数据结构是计算机科学中的核心课程之一,主要研究如何在计算机中高效地组织和管理数据,以便于进行快速的检索、存储和处理。李春葆编写的《数据结构教程上机实验指导》是一本针对该主题的实践性教材,旨在帮助学生...

    动态规划+回溯算法+二叉树等算法做法文档整理

    二叉树是一种数据结构,每个节点最多有两个子节点,通常分为左子节点和右子节点。二叉树的应用非常广泛,包括搜索、排序、文件系统等。二叉树的常见操作有插入、删除、遍历等。“代码随想录”二叉树专题精讲可能深入...

    2015年考研核心考点命题思路解密——数据结构——第四章:树与二叉树

    从提供的文件信息中可以提取到关于数据结构中树与二叉树的知识点,以下内容将围绕这些知识点进行详细说明: 首先,树(Tree)是一种重要的非线性数据结构,它在计算机科学中被广泛应用于表示具有层次关系的数据。树...

    数据结构课后答案整理

    本资源“数据结构课后答案整理”是针对这门课程的课后习题解答,旨在帮助学生巩固所学知识,理解并掌握数据结构的基本概念、原理和方法。 数据结构主要涉及以下几大类: 1. **线性结构**:包括数组、链表(单链表...

    数据结构资料整理.zip

    这份名为"数据结构资料整理.zip"的压缩包显然包含了关于数据结构的多个重要主题,包括实际运行过的代码和相关的文档说明。让我们逐一探讨这些知识点。 首先,**图的遍历**是数据结构中一个关键的议题。图由节点(或...

    非常详细的数据结构整理资源,笔试面试必备资料

    3. **树与二叉树**:树是一种非线性的数据结构,由节点(或顶点)和边组成,通常用来模拟具有层级关系的数据。二叉树是每个节点最多有两个子节点的特殊树,分为左子节点和右子节点,广泛用于搜索、排序等操作。...

    C++数据结构知识点与经典算法整理

    ### 数据结构知识点与经典算法整理 #### 一、数据结构知识点总结整理 1. **数据结构的简介**: - **重要性**:数据结构作为计算机科学的基础之一,对于理解和解决计算机程序设计中的问题至关重要。无论是编译原理...

    王道数据结构选择题汇总.docx

    2. **树形数据结构**:如二叉树、平衡树(AVL树、红黑树)、B树、B+树等。二叉树是每个节点最多有两个子节点的树,常见的有满二叉树和完全二叉树;平衡树通过保持左右子树高度差不超过1来确保高效查找;B树和B+树...

Global site tag (gtag.js) - Google Analytics