Algorithm:【算法进阶之路】之算法面试刷题集合—树结构算法的简介(二叉树/多路查找树/字典树)、具体结构(FBT/CBT/BST/BBT/Heap/Huffman、B树/B+树/R树、字典树)

96 篇文章 32 订阅 ¥29.90 ¥99.00
103 篇文章 27 订阅
这篇博客深入探讨了二叉树的结构,包括FBT、CBT、BST、BBT、Heap和Huffman树,并介绍了多路查找树,如B树、B+树和R树。此外,还详细讲解了二叉树的遍历、旋转操作以及平衡二叉树的插入和删除。最后,通过实例展示了如何用C++和Python实现二叉树的算法,涵盖了从基础到进阶的应用问题,如求最大路径和等。
摘要由CSDN通过智能技术生成

Algorithm:【算法进阶之路】之算法面试刷题集合—树结构算法的简介(二叉树/多路查找树/字典树)、具体结构(FBT/CBT/BST/BBT/Heap/Huffman、B树/B+树/R树、字典树)及其运算(增删查/遍历/旋转)、代码实现之详细攻略

目录

一、树结构

1.1、二叉树的简介

1.1.1、二叉树的概述

(0)、图文案例理解——满二叉树FBT、完全二叉树CBT、二叉树查找树BST、平衡二叉查找树BBT

(1)、FBT满二叉树

(2)、CBT完全二叉树

(3)、BST二叉查找树:时间复杂度、增删查

(4)、BBT平衡二叉树→AVL/RBT

(4.1)、RBT树(红黑树)概述

(4.2)、AVL树和RBT树(红黑树)对比

(4.3)、BBT的旋转、插入、查找、删除

(4.4)、BBT旋转—高度不平衡节点四种分类(左左/左右/右左/右右)、左左单旋转、左右双旋转图文分析

(4.5)、旋转图文理解、左旋、右旋

(5)、堆Heap

(6)、Huffman哈夫曼树/最优二叉树

1.1.2、二叉树的运算—三种遍历的概述:包括意义

(1)、前序遍历、中序遍历、后序遍历

1.2、多路查找树(特殊的多叉树)——二叉到多叉的思考

1.2.1、多叉树的概述

1.2.2、多路查找树的概述

(1)、多路查找树的查找与插入

(2)、B树、B+树、R树的区别和联系

1.3、字典树(Trie)

二、二叉树相关的算法题集合

0、定义二叉树及节点并利用networkx库实现树结构可视化:定义二叉树节点类→基于TreeNode类构建一个二叉树→利用networkx库实现树结构可视化

1、概念判断

(1)、判断是不是平衡二叉树BBT:意义(保证查找时间为O(log n))

(2)、判断是不是完全二叉树:意义(层次遍历/树的序列化/堆数据结构)

(3)、判断是不是二叉搜索树BST:意义(验证数据库索引的正确性/验证排序算法的正确性)

2、二叉树的输出

2.1、前序遍历/中序遍历/后序遍历:代码实现对比

T1、C++编程语言实现

T2、Python编程实现:采用迭代法+用栈来模拟递归过程实现

 (1)、二叉树的前序遍历:定义二叉树节点类+前序遍历函数+主函数实现

(3)、二叉树的中序遍历

2.2、求二叉树的层序遍历:意义(可视化二叉树结构/搜索算法记录节点/处理具有层级关系的数据)

2.3、按之字形顺序打印二叉树:意义(展示信息/报表生成)

(1)、二叉树的锯齿形层序遍历:使用队列来进行层序遍历,同时使用一个标志位来控制遍历的顺序

(2)、代码对比:求二叉树的层序遍历、按之字形顺序打印二叉树

2.4、通过前序中序求后序:已知二叉树的前序遍历、中序遍历→求其后序遍历

T1、C++代码实现

T2、python代码实现

3、二叉树的基础应用

(1)、求二叉树的最大深度:意义(衡量树的复杂度)

(2)、求二叉树中和为某一值的路径:意义(地理最短路径/推荐组合商品/理解决策树推理过程)

(3)、求二叉树中两个节点的最近公共祖先:意义(亲缘关系计算/文件权限管理/版本控制合并两个分支)

算法习题:二叉树的最近公共祖先

(4)、序列化二叉树:意义(数据持久化和传播/树的可视化)

(5)、基于前序遍历和中序遍历求重建二叉树:意义(数据恢复/)

4、二叉树的进阶应用

(1)、求根到叶子节点数字之和

(2)、路径总和??

☆☆(3)、二叉树中的最大路径和:采用递归的方法

(4)、不同的二叉搜索树种类

早期—二叉树算法相关习题:C++语言实现

1、BST二叉查找树

(1)、插入节点、删除节点

(2)、BST插入节点

(3)、BST的删除

2、平衡二叉树BBT单旋转、双旋转、BBT的插入、BBT的删除

(1)、左左单旋转

(2)、双旋转

(3)、BBT的插入

(4)、BBT的删除


一、树结构

1.1、二叉树的简介

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

一个处女座的程序猿

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

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

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

打赏作者

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

抵扣说明:

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

余额充值