码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 数据结构:树


    诸神缄默不语-个人CSDN博文目录

    我和ChatGPT一起制作了一个框架,现在只填充了一部分,具体的在补了。

    文章目录

    • 1. 树的基本概念
      • 1.1 树的定义
      • 1.2 树的术语
      • 1.3 树的性质
      • 1.4 树的存储结构(顺序存储和链式存储)
    • 2. 二叉树
      • 2.1 二叉树的定义
      • 2.2 特殊二叉树
        • 1. 满二叉树
        • 2. 完全二叉树
        • 3. 平衡二叉树(AVL树)
        • 4. 红黑树
      • 2.3 二叉树的遍历
        • 1. 前序遍历
        • 2. 中序遍历
        • 3. 后序遍历
        • 4. 层次遍历
      • 2.4 二叉树的操作
        • 1. 插入节点
        • 2. 删除节点
    • 3. 多路搜索树
      • 1. 2-3树
      • 2. B树
      • 3. B+树
    • 4. 堆
      • 1. 堆的定义与性质
      • 2. 最大堆与最小堆的操作
        • 1. 插入元素
        • 2. 堆化(Heapify)
        • 3. 删除堆顶元素
      • 3. 特殊堆结构
        • 1. 斐波那契堆
        • 2. 二项堆
        • 3. 左倾堆
        • 4. 斜堆
    • 参考资料

    1. 树的基本概念

    1.1 树的定义

    树是一种非线性的数据结构,由节点(或称作顶点)和连接节点的边组成。它具有一个特殊的节点,称为根节点,树中的任意两个节点之间都有唯一的路径相连。

    1.2 树的术语

    • 节点:树的基本部分,可以有0个或多个子节点。
    • 边:连接两个节点的线。
    • 根:没有父节点的节点。
    • 路径:从一个节点到另一个节点的节点序列。
    • 深度:从根节点到指定节点的边的数量。
    • 高度:从指定节点到最远叶子节点的最长路径上的边的数量。

    1.3 树的性质

    1.4 树的存储结构(顺序存储和链式存储)

    2. 二叉树

    2.1 二叉树的定义

    二叉树是一种特殊的树,每个节点最多有两个子节点,通常称为左子节点和右子节点。

    2.2 特殊二叉树

    1. 满二叉树

    满二叉树是一种特殊的二叉树,其中每一层的所有节点都完全填满,不存在空的位置。

    2. 完全二叉树

    3. 平衡二叉树(AVL树)

    4. 红黑树

    2.3 二叉树的遍历

    1. 前序遍历

    2. 中序遍历

    3. 后序遍历

    4. 层次遍历

    2.4 二叉树的操作

    1. 插入节点

    2. 删除节点

    3. 多路搜索树

    1. 2-3树

    2. B树

    3. B+树

    4. 堆

    1. 堆的定义与性质

    堆是一种特殊的完全二叉树,其中每个节点的值都满足堆的性质:在最大堆中,任意节点的值大于等于其子节点的值,或者说,任意一个节点的值都大于等于(或小于等于)所有子节点的值;在最小堆中,任意节点的值小于等于其子节点的值。

    2. 最大堆与最小堆的操作

    1. 插入元素

    自底向上

    2. 堆化(Heapify)

    堆化是一种调整堆结构的过程,以维护其性质。
    当从堆中删除元素或插入新元素时,通过堆化过程来恢复堆的顺序。

    删除堆顶元素后:
    自底向上:从第二层开始选择比较大的节点往上挪(会产生气泡)
    自顶向下:把最后一个元素挪到顶,然后往下挪

    3. 删除堆顶元素

    3. 特殊堆结构

    1. 斐波那契堆

    2. 二项堆

    3. 左倾堆

    4. 斜堆

    参考资料

    1. 二叉搜索树_百度百科
    2. 二叉排序树_二叉排序树升序-CSDN博客
    3. 「图解数据结构」堆:这篇公式很乱
    4. 二叉树的先序、中序、后序遍历C++_二叉树的先序,中序,后序遍历-CSDN博客
    5. 二叉树(八):二叉树的全部路径_二叉树路径-CSDN博客
  • 相关阅读:
    .NET Core多线程 (4) 锁机制
    【Java网络编程】 三
    fastposter v2.8.4 发布 电商海报生成器
    安全组问题 访问华为云服务器端口
    【每日一题Day35】LC878第N个神奇数字 | 二分查找 找规律 + 数学
    streamlit学生成绩展示平台
    泛型与Gson解析
    C++ 智能指针浅析
    Vue中的数据代理
    Ubuntu远程控制注意事项
  • 原文地址:https://blog.csdn.net/PolarisRisingWar/article/details/132680010
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号