网站备案org临海钢结构设计网站

张小明 2025/12/28 16:27:24
网站备案org,临海钢结构设计网站,查询网站入口,制作网络平台多少钱一、为什么需要红黑树#xff1f;在编程中#xff0c;我们经常需要一个动态维护有序数据的结构。比如#xff1a;std::map 和 std::set 的底层实现Linux内核的进程调度器数据库的索引结构如果使用普通的二叉搜索树#xff08;BST#xff09;#xff0c;极端情况下会退化成…一、为什么需要红黑树在编程中我们经常需要一个动态维护有序数据的结构。比如std::map和std::set的底层实现Linux内核的进程调度器数据库的索引结构如果使用普通的二叉搜索树BST极端情况下会退化成链表如插入有序数据导致查找效率从O(log n)降为O(n)。为了解决这个问题红黑树Red-Black Tree应运而生。二、红黑树的核心思想红黑树是一种自平衡的二叉搜索树它通过以下规则实现近似平衡红黑树的5大规则每个节点非红即黑根节点必须是黑色红色节点的子节点必须是黑色不能出现连续的红色从任意节点到其空子节点的路径上黑色节点的数量必须相同每个叶子节点空节点是黑色为什么这些规则能保证效率最长路径 ≤ 2 × 最短路径例如如果最短路径有k个节点最长路径最多有2k个节点。这确保了红黑树的高度始终在O(log n)范围内。三、红黑树的插入操作详解插入新节点时红黑树需要通过变色 旋转维持平衡。以下是典型场景情况1父节点是黑色直接插入即可无需调整。情况2父节点是红色此时需要根据叔叔节点的颜色进行处理子情况1叔叔是红色操作父节点、叔节点变黑祖父节点变红并继续向上处理。祖父(黑) → 父(红) → 当前(红) 叔(红)子情况2叔叔是黑色或不存在需要通过旋转调整LL型当前节点在左子树的左子树右单旋 变色RR型当前节点在右子树的右子树左单旋 变色LR型当前节点在左子树的右子树左右双旋 变色RL型当前节点在右子树的左子树右左双旋 变色四、红黑树的代码实现enum Color { RED, BLACK }; template typename K, typename V struct RBTreeNode { RBTreeNode* left; RBTreeNode* right; RBTreeNode* parent; std::pairK, V kv; Color color; RBTreeNode(const K key, const V value) : left(nullptr), right(nullptr), parent(nullptr), kv(key, value), color(RED) {} }; template typename K, typename V class RBTree { public: void insert(const K key, const V value) { // 二叉搜索树插入逻辑 // ... // 插入后调整平衡 fixInsert(newNode); } private: void fixInsert(RBTreeNodeK, V* node) { while (node-parent node-parent-color RED) { // 处理四种情况 // ... } root-color BLACK; } RBTreeNodeK, V* root; };五、红黑树的应用场景1.C STL容器std::map和std::set默认使用红黑树实现C11。插入/删除操作时间复杂度为O(log n)。2.Linux内核完全公平调度器CFS使用红黑树管理进程队列。快速找到下一个要运行的进程。3.数据库索引MySQL 的 InnoDB 引擎使用 B 树红黑树的扩展作为索引结构。
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

网站建设怎么建理财网站模板免费下载

📝 博客主页:jaxzheng的CSDN主页 目录医疗数据科学:当Excel遇上CT片,我差点把医生气哭 一、数据科学的"薛定谔的病历" 二、AI医生:能看片却看不懂人 三、数据孤岛:比我的社交圈还难搞 四、未来展…

张小明 2025/12/25 19:06:16 网站建设

宠物网站建设报告代刷网站开发

CSS Grid Generator是一个革命性的可视化工具,它彻底改变了前端开发者创建网页布局的方式。无论你是刚入门的新手还是经验丰富的专家,这个工具都能让你在几分钟内生成专业的CSS网格代码,无需深入理解复杂的Grid语法。 【免费下载链接】cssgri…

张小明 2025/12/25 19:04:15 网站建设

网站开启伪静态网站推广的优势有哪些

队列 与 栈 是 两种 不同 的 数据 结构,都是被用来预存储数据的。 它们 有 以下 区别。(1) 操作 的 名称 不同。 队列 的 插入 称为 入队, 队列 的 删除 称为 出 队。 栈 的 插入 称为 进 栈, 栈 的 删除 称为 出 栈。…

张小明 2025/12/28 20:06:14 网站建设

做外贸哪个网站最好我想做

深入了解 Microsoft Office 2007:功能与应用全解析(上) 1. 学习目标 完成 Microsoft Office 2007 的学习后,你应具备以下能力: - 描述 2007 版 Microsoft Office 系统。 - 介绍 Office 2007 的各个应用程序。 - 启动 Office 2007 应用程序。 - 识别基本的应用程序功…

张小明 2025/12/28 20:26:14 网站建设

电信 网站备案软件园二期做网站的公司有哪些

终极指南:如何用GoScan实现高效网络资产发现 【免费下载链接】goscan Interactive Network Scanner 项目地址: https://gitcode.com/gh_mirrors/go/goscan 还在为复杂的网络扫描命令而头疼吗?想要一款既强大又易用的网络安全工具?今天…

张小明 2025/12/28 16:50:05 网站建设

大同市建设局网站到那个网站做翻译接单

Balena Etcher是一款革命性的开源镜像烧录工具,专为简化操作系统镜像部署而生。无论您是需要制作树莓派启动盘,还是创建Windows恢复介质,Etcher都能在几分钟内帮您完成专业级烧录任务。 【免费下载链接】etcher Flash OS images to SD cards …

张小明 2025/12/25 18:56:09 网站建设