如何将Python实现红黑树的理论与实践记录日志?
- 内容介绍
- 文章标签
- 相关推荐
前言——我为什么要在Python里玩红黑树
说实话, 我本来只想写个list.append后来啊一不小心掉进了《算法导论》的深渊,红黑树这只“颜色怪兽”硬是把我拽了进去。于是 我决定把这段血泪史记录下来顺便让搜索引擎也能感受到我的痛苦,太治愈了。。
警告:本文内容极其随意,可能出现拼写错误、代码缺失、甚至情绪失控。阅读请自备耐心和咖啡,最后说一句。。

一、理论篇——红黑树到底是个啥玩意儿?
基本上... 先给大家一个简陋的定义:红黑树是一棵二叉搜索树, 只不过每个节点会被涂成红或黑,用来强迫自己保持平衡。
它的五条规则大概是:
- 根节点必须是黑色
- 每个叶子都是黑色
- 红节点的子节点一定是黑色
- 从任意节点到所有后代叶子的路径上, 黑色节点数相同
- ......
*此处应有数学推导*,但我懒得写,只想说:高度 ≤ 2·log₂ , 恕我直言... 所以查询是 O。好啦,就这么定了。
前言——我为什么要在Python里玩红黑树
说实话, 我本来只想写个list.append后来啊一不小心掉进了《算法导论》的深渊,红黑树这只“颜色怪兽”硬是把我拽了进去。于是 我决定把这段血泪史记录下来顺便让搜索引擎也能感受到我的痛苦,太治愈了。。
警告:本文内容极其随意,可能出现拼写错误、代码缺失、甚至情绪失控。阅读请自备耐心和咖啡,最后说一句。。

一、理论篇——红黑树到底是个啥玩意儿?
基本上... 先给大家一个简陋的定义:红黑树是一棵二叉搜索树, 只不过每个节点会被涂成红或黑,用来强迫自己保持平衡。
它的五条规则大概是:
- 根节点必须是黑色
- 每个叶子都是黑色
- 红节点的子节点一定是黑色
- 从任意节点到所有后代叶子的路径上, 黑色节点数相同
- ......
*此处应有数学推导*,但我懒得写,只想说:高度 ≤ 2·log₂ , 恕我直言... 所以查询是 O。好啦,就这么定了。

