💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、星火、月之暗面及文生图 广告
[TOC] # 为什么有树结构? ![](https://box.kancloud.cn/37d2961d64dd617b180c58f77d3779c1_818x1000.png) ![](https://box.kancloud.cn/87c16384680729e4fad4ccf515440a4a_1450x1216.png) ![](https://box.kancloud.cn/cc02b3522bfcae372d5930c0342e853c_2080x1048.png) # 二叉树 ![](https://box.kancloud.cn/2eca627b68e482d0878b5ee2d03b21b1_2924x1090.png) ![](https://box.kancloud.cn/4389a2d33d08032453b6fbd6df326f94_2908x1106.png) 二叉树不一定是满的,叶子节点有可能只有1个 一个根节点也可以是二叉树 null也可以是二叉树 # 二分搜索树(BST) ![](https://box.kancloud.cn/ccdb101f5f5fd32ef8f92da30028fd52_2880x1132.png) 存储的元素必须具有可比较性 # 遍历 前序遍历(先访问节点,再访问左右子树) 中序遍历(先访问左子树或者右子树,再访问根节点,再访问其他节点)(二分搜索树的中序遍历结果是顺序的) 后序遍历(先遍历左右子树再遍历根节点)(应用,为二分搜索树释放内存) ## 前序遍历,递归 ![](https://box.kancloud.cn/a7dd2b31d3b0923e9a40e0f63af6124e_1280x671.png) ## 中序遍历,递归 ![](https://box.kancloud.cn/0e8cc944d053aa08d74c16534b4e3568_1279x680.png) ## 后序遍历,递归 ![](https://box.kancloud.cn/4d7eb3a51a7aea893941a2c395dfffb2_1262x682.png) ## 前序遍历,非递归 利用栈遍历 ![](https://box.kancloud.cn/04874b8db5fad3337be2c2f17b0c7bd4_1339x635.png) ## 层序遍历(广度优先) 借助队列 ![](https://box.kancloud.cn/c0e2cb7c772beb60fd2b391fa44d9119_1366x620.png) 意义在于可以很快找到你要查找的元素,区别在于搜索策略 常用于最短路径 图中的深度优先遍历和广度优先遍历 # 删除最小值 找左边,直到为null,那就是自己 ![](https://box.kancloud.cn/d2366ce3ea09c3fa5da910e2f9825bb2_661x570.png) # 删除最大值 找右边,直到为null,那就是自己 ![](https://box.kancloud.cn/2db9e37dd2092bacfdacfada31e45fff_874x571.png)