Github: 红黑树插入操作之:插入根节点
Email: BuddyZhang1 buddy.zhang@aliyun.com
目录
红黑树插入根节点
向一棵空的红黑树插入根节点是比较简单,只需将红黑树的根节点指向该节点,并且设置根节点的
颜色为黑色。
核心代码实现
当调用 __rb_insert() 函数向红黑树插入一个节点时候,如果检查到该节点没有 parent 节点,
那么这个节点就是根节点,然后调用 rb_set_parent_color() 函数将该节点的颜色标记为黑色。
红黑树插入根节点与 2-3 树的关系
毕竟红黑树是 2-3 树的一种表现形式,因此插入根节点的原理也符合 2-3 树的原理。当插入一个
根节点的时候,此时红黑树中不存在任何 2- 或者 3- 的节点,因此不用考虑融合和提取,只需
之间插入到红黑树作为一个 2- 节点。
更多红黑树与 2-3 树的关系请看文档:
红黑树与 2-3 树的关系分析
红黑树插入根节点实践
实践源码
实践源码 GitHub
开发者可以从上面的链接中获得所有的实践代码,也可以使用如下命令获得:
实践源码具体内容如下:
源码编译
使用如下命令进行编译:
源码运行
实践源码的运行很简单,可以使用如下命令,并且运行结果如下:
运行分析
在实践代码中,使用二叉查找树的方法,向红黑树中插入根节点,然后调用 rb_insert_color()
红黑树实际插入操作。开发者可以使用调试工具跟踪 rb_insert_color() 的调用过程。
附录
Data Structure Visualizations
红黑树与 2-3 树的关系
BiscuitOS Home
BiscuitOS Driver
BiscuitOS Kernel Build
Linux Kernel
Bootlin: Elixir Cross Referencer
搭建高效的 Linux 开发环境
赞赏一下吧 🙂