数据结构:树

诸神缄默不语-个人优快云博文目录

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

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. 二叉排序树_二叉排序树升序-优快云博客
  3. 「图解数据结构」堆:这篇公式很乱
  4. 二叉树的先序、中序、后序遍历C++_二叉树的先序,中序,后序遍历-优快云博客
  5. 二叉树(八):二叉树的全部路径_二叉树路径-优快云博客
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

诸神缄默不语

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值