news 2026/6/10 17:27:50

手把手实现红黑树Set和Map

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
手把手实现红黑树Set和Map

好的,我们来手把手实现一个简化版的红黑树(RB-Tree),并基于此封装SetMap容器。整个过程会分为几个步骤:


步骤1: 红黑树基础

红黑树是一种自平衡二叉搜索树,满足以下性质:

  1. 每个节点是红色或黑色
  2. 根节点是黑色
  3. 叶子节点(NIL节点)是黑色
  4. 红色节点的子节点必须是黑色(不能有连续红色节点)
  5. 从任一节点到其叶子节点的路径包含相同数量的黑色节点

步骤2: 节点结构设计

enum Color { RED, BLACK }; template<typename T> struct RBTreeNode { T data; // 节点存储的数据 Color color; RBTreeNode* parent; RBTreeNode* left; RBTreeNode* right; RBTreeNode(T val, Color c = RED) : data(val), color(c), parent(nullptr), left(nullptr), right(nullptr) {} };

http://my.tv.sohu.com/us/441548290/698245990.shtml
https://tv.sohu.com/v/dXMvNDQxNTQ4MjkwLzY5ODI0NTk5MC5zaHRtbA==.html
http://my.tv.sohu.com/us/441548290/698247253.shtml
https://tv.sohu.com/v/dXMvNDQxNTQ4MjkwLzY5ODI0NzI1My5zaHRtbA==.html
http://my.tv.sohu.com/us/441548290/698247332.shtml
https://tv.sohu.com/v/dXMvNDQxNTQ4MjkwLzY5ODI0NzMzMi5zaHRtbA==.html
http://my.tv.sohu.com/us/441548290/698247513.shtml
https://tv.sohu.com/v/dXMvNDQxNTQ4MjkwLzY5ODI0NzUxMy5zaHRtbA==.html
http://my.tv.sohu.com/us/441548290/698247336.shtml
https://tv.sohu.com/v/dXMvNDQxNTQ4MjkwLzY5ODI0NzMzNi5zaHRtbA==.html
http://my.tv.sohu.com/us/441548290/698247340.shtml
https://tv.sohu.com/v/dXMvNDQxNTQ4MjkwLzY5ODI0NzM0MC5zaHRtbA==.html
http://my.tv.sohu.com/us/441548290/698247343.shtml
https://tv.sohu.com/v/dXMvNDQxNTQ4MjkwLzY5ODI0NzM0My5zaHRtbA==.html
http://my.tv.sohu.com/us/441548290/698247424.shtml
https://tv.sohu.com/v/dXMvNDQxNTQ4MjkwLzY5ODI0NzQyNC5zaHRtbA==.html
http://my.tv.sohu.com/us/441548290/698247349.shtml
https://tv.sohu.com/v/dXMvNDQxNTQ4MjkwLzY5ODI0NzM0OS5zaHRtbA==.html
http://my.tv.sohu.com/us/441548290/698247351.shtml
https://tv.sohu.com/v/dXMvNDQxNTQ4MjkwLzY5ODI0NzM1MS5zaHRtbA==.html
http://my.tv.sohu.com/us/441548290/698247534.shtml
https://tv.sohu.com/v/dXMvNDQxNTQ4MjkwLzY5ODI0NzUzNC5zaHRtbA==.html
http://my.tv.sohu.com/us/441548290/698247537.shtml
https://tv.sohu.com/v/dXMvNDQxNTQ4MjkwLzY5ODI0NzUzNy5zaHRtbA==.html
http://my.tv.sohu.com/us/441548290/698247286.shtml
https://tv.sohu.com/v/dXMvNDQxNTQ4MjkwLzY5ODI0NzI4Ni5zaHRtbA==.html
http://my.tv.sohu.com/us/441548290/698247443.shtml
https://tv.sohu.com/v/dXMvNDQxNTQ4MjkwLzY5ODI0NzQ0My5zaHRtbA==.html
http://my.tv.sohu.com/us/441548290/698247451.shtml
https://tv.sohu.com/v/dXMvNDQxNTQ4MjkwLzY5ODI0NzQ1MS5zaHRtbA==.html
http://my.tv.sohu.com/us/441548290/698247454.shtml
https://tv.sohu.com/v/dXMvNDQxNTQ4MjkwLzY5ODI0NzQ1NC5zaHRtbA==.html
http://my.tv.sohu.com/us/441548290/698247557.shtml
https://tv.sohu.com/v/dXMvNDQxNTQ4MjkwLzY5ODI0NzU1Ny5zaHRtbA==.html
http://my.tv.sohu.com/us/441548290/698247567.shtml
https://tv.sohu.com/v/dXMvNDQxNTQ4MjkwLzY5ODI0NzU2Ny5zaHRtbA==.html
http://my.tv.sohu.com/us/441548290/698247608.shtml
https://tv.sohu.com/v/dXMvNDQxNTQ4MjkwLzY5ODI0NzYwOC5zaHRtbA==.html
http://my.tv.sohu.com/us/441548290/698247387.shtml
https://tv.sohu.com/v/dXMvNDQxNTQ4MjkwLzY5ODI0NzM4Ny5zaHRtbA==.html
http://my.tv.sohu.com/us/441548290/698247624.shtml
https://tv.sohu.com/v/dXMvNDQxNTQ4MjkwLzY5ODI0NzYyNC5zaHRtbA==.html
http://my.tv.sohu.com/us/441548290/698247593.shtml
https://tv.sohu.com/v/dXMvNDQxNTQ4MjkwLzY5ODI0NzU5My5zaHRtbA==.html
http://my.tv.sohu.com/us/441548290/698247486.shtml
https://tv.sohu.com/v/dXMvNDQxNTQ4MjkwLzY5ODI0NzQ4Ni5zaHRtbA==.html
http://my.tv.sohu.com/us/441548290/698247600.shtml
https://tv.sohu.com/v/dXMvNDQxNTQ4MjkwLzY5ODI0NzYwMC5zaHRtbA==.html
http://my.tv.sohu.com/us/441548290/698247646.shtml
https://tv.sohu.com/v/dXMvNDQxNTQ4MjkwLzY5ODI0NzY0Ni5zaHRtbA==.html
http://my.tv.sohu.com/us/441548290/698247916.shtml
https://tv.sohu.com/v/dXMvNDQxNTQ4MjkwLzY5ODI0NzkxNi5zaHRtbA==.html
http://my.tv.sohu.com/us/441548290/698247921.shtml
https://tv.sohu.com/v/dXMvNDQxNTQ4MjkwLzY5ODI0NzkyMS5zaHRtbA==.html
http://my.tv.sohu.com/us/441548290/698247500.shtml
https://tv.sohu.com/v/dXMvNDQxNTQ4MjkwLzY5ODI0NzUwMC5zaHRtbA==.html
http://my.tv.sohu.com/us/441548290/698247929.shtml
https://tv.sohu.com/v/dXMvNDQxNTQ4MjkwLzY5ODI0NzkyOS5zaHRtbA==.html
http://my.tv.sohu.com/us/441548290/698247931.shtml
https://tv.sohu.com/v/dXMvNDQxNTQ4MjkwLzY5ODI0NzkzMS5zaHRtbA==.html
http://my.tv.sohu.com/us/441548290/698247736.shtml
https://tv.sohu.com/v/dXMvNDQxNTQ4MjkwLzY5ODI0NzczNi5zaHRtbA==.html
http://my.tv.sohu.com/us/441548290/698247992.shtml
https://tv.sohu.com/v/dXMvNDQxNTQ4MjkwLzY5ODI0Nzk5Mi5zaHRtbA==.html
http://my.tv.sohu.com/us/441548290/698247997.shtml
https://tv.sohu.com/v/dXMvNDQxNTQ4MjkwLzY5ODI0Nzk5Ny5zaHRtbA==.html
http://my.tv.sohu.com/us/441548290/698248025.shtml
https://tv.sohu.com/v/dXMvNDQxNTQ4MjkwLzY5ODI0ODAyNS5zaHRtbA==.html
http://my.tv.sohu.com/us/441548290/698248105.shtml
https://tv.sohu.com/v/dXMvNDQxNTQ4MjkwLzY5ODI0ODEwNS5zaHRtbA==.html
http://my.tv.sohu.com/us/441548290/698248216.shtml
https://tv.sohu.com/v/dXMvNDQxNTQ4MjkwLzY5ODI0ODIxNi5zaHRtbA==.html
http://my.tv.sohu.com/us/441548290/698248234.shtml
https://tv.sohu.com/v/dXMvNDQxNTQ4MjkwLzY5ODI0ODIzNC5zaHRtbA==.html
http://my.tv.sohu.com/us/441548290/698248316.shtml
https://tv.sohu.com/v/dXMvNDQxNTQ4MjkwLzY5ODI0ODMxNi5zaHRtbA==.html
http://my.tv.sohu.com/us/441548290/698248068.shtml
https://tv.sohu.com/v/dXMvNDQxNTQ4MjkwLzY5ODI0ODA2OC5zaHRtbA==.html
http://my.tv.sohu.com/us/441548290/698248246.shtml
https://tv.sohu.com/v/dXMvNDQxNTQ4MjkwLzY5ODI0ODI0Ni5zaHRtbA==.html
http://my.tv.sohu.com/us/441548290/698248254.shtml
https://tv.sohu.com/v/dXMvNDQxNTQ4MjkwLzY5ODI0ODI1NC5zaHRtbA==.html
http://my.tv.sohu.com/us/441548290/698248333.shtml
https://tv.sohu.com/v/dXMvNDQxNTQ4MjkwLzY5ODI0ODMzMy5zaHRtbA==.html
http://my.tv.sohu.com/us/441548290/698248085.shtml
https://tv.sohu.com/v/dXMvNDQxNTQ4MjkwLzY5ODI0ODA4NS5zaHRtbA==.html
http://my.tv.sohu.com/us/441548290/698248262.shtml
https://tv.sohu.com/v/dXMvNDQxNTQ4MjkwLzY5ODI0ODI2Mi5zaHRtbA==.html
http://my.tv.sohu.com/us/441548290/698248164.shtml
https://tv.sohu.com/v/dXMvNDQxNTQ4MjkwLzY5ODI0ODE2NC5zaHRtbA==.html
http://my.tv.sohu.com/us/441548290/698248339.shtml
https://tv.sohu.com/v/dXMvNDQxNTQ4MjkwLzY5ODI0ODMzOS5zaHRtbA==.html


步骤3: 核心操作实现

3.1 左旋(Left Rotate)
template<typename T> void RBTree<T>::leftRotate(RBTreeNode<T>* x) { RBTreeNode<T>* y = x->right; x->right = y->left; if (y->left) y->left->parent = x; y->parent = x->parent; if (!x->parent) root = y; else if (x == x->parent->left) x->parent->left = y; else x->parent->right = y; y->left = x; x->parent = y; }
3.2 右旋(Right Rotate)
template<typename T> void RBTree<T>::rightRotate(RBTreeNode<T>* y) { RBTreeNode<T>* x = y->left; y->left = x->right; if (x->right) x->right->parent = y; x->parent = y->parent; if (!y->parent) root = x; else if (y == y->parent->left) y->parent->left = x; else y->parent->right = x; x->right = y; y->parent = x; }

http://my.tv.sohu.com/us/441548290/698245990.shtml
https://tv.sohu.com/v/dXMvNDQxNTQ4MjkwLzY5ODI0NTk5MC5zaHRtbA==.html
http://my.tv.sohu.com/us/441548290/698247253.shtml
https://tv.sohu.com/v/dXMvNDQxNTQ4MjkwLzY5ODI0NzI1My5zaHRtbA==.html
http://my.tv.sohu.com/us/441548290/698247332.shtml
https://tv.sohu.com/v/dXMvNDQxNTQ4MjkwLzY5ODI0NzMzMi5zaHRtbA==.html
http://my.tv.sohu.com/us/441548290/698247513.shtml
https://tv.sohu.com/v/dXMvNDQxNTQ4MjkwLzY5ODI0NzUxMy5zaHRtbA==.html
http://my.tv.sohu.com/us/441548290/698247336.shtml
https://tv.sohu.com/v/dXMvNDQxNTQ4MjkwLzY5ODI0NzMzNi5zaHRtbA==.html
http://my.tv.sohu.com/us/441548290/698247340.shtml
https://tv.sohu.com/v/dXMvNDQxNTQ4MjkwLzY5ODI0NzM0MC5zaHRtbA==.html
http://my.tv.sohu.com/us/441548290/698247343.shtml
https://tv.sohu.com/v/dXMvNDQxNTQ4MjkwLzY5ODI0NzM0My5zaHRtbA==.html
http://my.tv.sohu.com/us/441548290/698247424.shtml
https://tv.sohu.com/v/dXMvNDQxNTQ4MjkwLzY5ODI0NzQyNC5zaHRtbA==.html
http://my.tv.sohu.com/us/441548290/698247349.shtml
https://tv.sohu.com/v/dXMvNDQxNTQ4MjkwLzY5ODI0NzM0OS5zaHRtbA==.html
http://my.tv.sohu.com/us/441548290/698247351.shtml
https://tv.sohu.com/v/dXMvNDQxNTQ4MjkwLzY5ODI0NzM1MS5zaHRtbA==.html
http://my.tv.sohu.com/us/441548290/698247534.shtml
https://tv.sohu.com/v/dXMvNDQxNTQ4MjkwLzY5ODI0NzUzNC5zaHRtbA==.html
http://my.tv.sohu.com/us/441548290/698247537.shtml
https://tv.sohu.com/v/dXMvNDQxNTQ4MjkwLzY5ODI0NzUzNy5zaHRtbA==.html
http://my.tv.sohu.com/us/441548290/698247286.shtml
https://tv.sohu.com/v/dXMvNDQxNTQ4MjkwLzY5ODI0NzI4Ni5zaHRtbA==.html
http://my.tv.sohu.com/us/441548290/698247443.shtml
https://tv.sohu.com/v/dXMvNDQxNTQ4MjkwLzY5ODI0NzQ0My5zaHRtbA==.html
http://my.tv.sohu.com/us/441548290/698247451.shtml
https://tv.sohu.com/v/dXMvNDQxNTQ4MjkwLzY5ODI0NzQ1MS5zaHRtbA==.html
http://my.tv.sohu.com/us/441548290/698247454.shtml
https://tv.sohu.com/v/dXMvNDQxNTQ4MjkwLzY5ODI0NzQ1NC5zaHRtbA==.html
http://my.tv.sohu.com/us/441548290/698247557.shtml
https://tv.sohu.com/v/dXMvNDQxNTQ4MjkwLzY5ODI0NzU1Ny5zaHRtbA==.html
http://my.tv.sohu.com/us/441548290/698247567.shtml
https://tv.sohu.com/v/dXMvNDQxNTQ4MjkwLzY5ODI0NzU2Ny5zaHRtbA==.html
http://my.tv.sohu.com/us/441548290/698247608.shtml
https://tv.sohu.com/v/dXMvNDQxNTQ4MjkwLzY5ODI0NzYwOC5zaHRtbA==.html
http://my.tv.sohu.com/us/441548290/698247387.shtml
https://tv.sohu.com/v/dXMvNDQxNTQ4MjkwLzY5ODI0NzM4Ny5zaHRtbA==.html
http://my.tv.sohu.com/us/441548290/698247624.shtml
https://tv.sohu.com/v/dXMvNDQxNTQ4MjkwLzY5ODI0NzYyNC5zaHRtbA==.html
http://my.tv.sohu.com/us/441548290/698247593.shtml
https://tv.sohu.com/v/dXMvNDQxNTQ4MjkwLzY5ODI0NzU5My5zaHRtbA==.html
http://my.tv.sohu.com/us/441548290/698247486.shtml
https://tv.sohu.com/v/dXMvNDQxNTQ4MjkwLzY5ODI0NzQ4Ni5zaHRtbA==.html
http://my.tv.sohu.com/us/441548290/698247600.shtml
https://tv.sohu.com/v/dXMvNDQxNTQ4MjkwLzY5ODI0NzYwMC5zaHRtbA==.html
http://my.tv.sohu.com/us/441548290/698247646.shtml
https://tv.sohu.com/v/dXMvNDQxNTQ4MjkwLzY5ODI0NzY0Ni5zaHRtbA==.html
http://my.tv.sohu.com/us/441548290/698247916.shtml
https://tv.sohu.com/v/dXMvNDQxNTQ4MjkwLzY5ODI0NzkxNi5zaHRtbA==.html
http://my.tv.sohu.com/us/441548290/698247921.shtml
https://tv.sohu.com/v/dXMvNDQxNTQ4MjkwLzY5ODI0NzkyMS5zaHRtbA==.html
http://my.tv.sohu.com/us/441548290/698247500.shtml
https://tv.sohu.com/v/dXMvNDQxNTQ4MjkwLzY5ODI0NzUwMC5zaHRtbA==.html
http://my.tv.sohu.com/us/441548290/698247929.shtml
https://tv.sohu.com/v/dXMvNDQxNTQ4MjkwLzY5ODI0NzkyOS5zaHRtbA==.html
http://my.tv.sohu.com/us/441548290/698247931.shtml
https://tv.sohu.com/v/dXMvNDQxNTQ4MjkwLzY5ODI0NzkzMS5zaHRtbA==.html
http://my.tv.sohu.com/us/441548290/698247736.shtml
https://tv.sohu.com/v/dXMvNDQxNTQ4MjkwLzY5ODI0NzczNi5zaHRtbA==.html
http://my.tv.sohu.com/us/441548290/698247992.shtml
https://tv.sohu.com/v/dXMvNDQxNTQ4MjkwLzY5ODI0Nzk5Mi5zaHRtbA==.html
http://my.tv.sohu.com/us/441548290/698247997.shtml
https://tv.sohu.com/v/dXMvNDQxNTQ4MjkwLzY5ODI0Nzk5Ny5zaHRtbA==.html
http://my.tv.sohu.com/us/441548290/698248025.shtml
https://tv.sohu.com/v/dXMvNDQxNTQ4MjkwLzY5ODI0ODAyNS5zaHRtbA==.html
http://my.tv.sohu.com/us/441548290/698248105.shtml
https://tv.sohu.com/v/dXMvNDQxNTQ4MjkwLzY5ODI0ODEwNS5zaHRtbA==.html
http://my.tv.sohu.com/us/441548290/698248216.shtml
https://tv.sohu.com/v/dXMvNDQxNTQ4MjkwLzY5ODI0ODIxNi5zaHRtbA==.html
http://my.tv.sohu.com/us/441548290/698248234.shtml
https://tv.sohu.com/v/dXMvNDQxNTQ4MjkwLzY5ODI0ODIzNC5zaHRtbA==.html
http://my.tv.sohu.com/us/441548290/698248316.shtml
https://tv.sohu.com/v/dXMvNDQxNTQ4MjkwLzY5ODI0ODMxNi5zaHRtbA==.html
http://my.tv.sohu.com/us/441548290/698248068.shtml
https://tv.sohu.com/v/dXMvNDQxNTQ4MjkwLzY5ODI0ODA2OC5zaHRtbA==.html
http://my.tv.sohu.com/us/441548290/698248246.shtml
https://tv.sohu.com/v/dXMvNDQxNTQ4MjkwLzY5ODI0ODI0Ni5zaHRtbA==.html
http://my.tv.sohu.com/us/441548290/698248254.shtml
https://tv.sohu.com/v/dXMvNDQxNTQ4MjkwLzY5ODI0ODI1NC5zaHRtbA==.html
http://my.tv.sohu.com/us/441548290/698248333.shtml
https://tv.sohu.com/v/dXMvNDQxNTQ4MjkwLzY5ODI0ODMzMy5zaHRtbA==.html
http://my.tv.sohu.com/us/441548290/698248085.shtml
https://tv.sohu.com/v/dXMvNDQxNTQ4MjkwLzY5ODI0ODA4NS5zaHRtbA==.html
http://my.tv.sohu.com/us/441548290/698248262.shtml
https://tv.sohu.com/v/dXMvNDQxNTQ4MjkwLzY5ODI0ODI2Mi5zaHRtbA==.html
http://my.tv.sohu.com/us/441548290/698248164.shtml
https://tv.sohu.com/v/dXMvNDQxNTQ4MjkwLzY5ODI0ODE2NC5zaHRtbA==.html
http://my.tv.sohu.com/us/441548290/698248339.shtml
https://tv.sohu.com/v/dXMvNDQxNTQ4MjkwLzY5ODI0ODMzOS5zaHRtbA==.html


步骤4: 插入修复(Fixup)

插入后可能破坏红黑树性质,需通过颜色翻转和旋转修复:

template<typename T> void RBTree<T>::insertFixup(RBTreeNode<T>* z) { while (z->parent && z->parent->color == RED) { if (z->parent == z->parent->parent->left) { RBTreeNode<T>* uncle = z->parent->parent->right; if (uncle && uncle->color == RED) { // Case 1: 叔节点为红 z->parent->color = BLACK; uncle->color = BLACK; z->parent->parent->color = RED; z = z->parent->parent; } else { if (z == z->parent->right) { // Case 2: 三角型 z = z->parent; leftRotate(z); } // Case 3: 直线型 z->parent->color = BLACK; z->parent->parent->color = RED; rightRotate(z->parent->parent); } } else { // 对称操作(略) } } root->color = BLACK; // 根节点始终为黑 }

步骤5: 封装Set容器

template<typename Key> class Set { private: RBTree<Key> tree; // 红黑树实例 public: void insert(const Key& key) { tree.insert(key); } bool contains(const Key& key) { return tree.find(key) != nullptr; } // 迭代器、删除等操作(略) };

步骤6: 封装Map容器

通过存储键值对实现:

template<typename Key, typename Value> class Map { private: struct MapNode { Key key; Value value; bool operator<(const MapNode& other) const { return key < other.key; } }; RBTree<MapNode> tree; // 存储键值对 public: void insert(const Key& key, const Value& val) { tree.insert({key, val}); } Value& operator[](const Key& key) { auto node = tree.find({key, Value()}); if (!node) { insert(key, Value()); node = tree.find({key, Value()}); } return node->data.value; } };

总结

  1. 红黑树核心:旋转 + 颜色修复
  2. Set封装:直接存储单一类型数据
  3. Map封装:存储键值对,通过自定义比较规则排序

完整实现需补充删除操作、迭代器、边界检查等细节,但以上框架已覆盖核心逻辑。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/10 14:10:36

树莓派5+ubuntu24.04+openclaw使用记录

1 安装openclaw 参考连接&#xff08;一键安装openclaw&#xff09;&#xff1a; 官网 https://openclaw.ai/ 菜鸟 OpenClaw (Clawdbot) 教程 | 菜鸟教程 中文文档 https://holtchas.github.io/openclaw-docs-zh/sta…

作者头像 李华
网站建设 2026/6/10 15:37:03

告别Docker拉取超时!三分钟搞定镜像加速与配置文件优化

摘要&#xff1a;本文手把手教你解决Docker拉取镜像时常见的超时错误&#xff0c;通过配置国内镜像源和优化daemon.json文件&#xff0c;让你的Docker体验飞起来&#xff01;最近在部署Docker环境时&#xff0c;你是否也遇到过这样的报错&#xff1f; Error response from daem…

作者头像 李华
网站建设 2026/6/10 14:56:46

<span class=“js_title_inner“>让 AI 也能当“反洗钱专家“——一个通俗易懂的模型训练故事</span>

故事的开端&#xff1a;为什么要做这件事?想象一下,你是一家银行的合规专员。每天要面对厚厚的反洗钱法规文件,还要分析各种复杂的可疑交易案例。有些问题特别棘手:法律条文晦涩难懂,一个条款套着另一个条款真实的洗钱案例千奇百怪,要从蛛丝马迹中发现问题有时候一个问题涉及好…

作者头像 李华
网站建设 2026/6/10 14:53:52

堪比图吧工具箱!入梦工具箱 近百种硬件检测工具

下载链接https://pan.freedw.com/s/aHdahn给需要硬件检测的小伙伴推荐一款实用工具 —— 入梦工具箱&#xff0c;它和热门的图吧工具箱功能几乎一模一样&#xff0c;同样收集了近百种各类硬件检测工具&#xff0c;不管是检测电脑配置、排查硬件故障&#xff0c;还是性能测试&am…

作者头像 李华
网站建设 2026/6/10 16:02:52

梦笔记20260103

回家遇到侄女&#xff0c;说她是老奶抱大的&#xff0c;应该感恩。老姐在一个沙岛上&#xff0c;上班要坐飞机&#xff0c;先到陆地&#xff1f;出差到科大&#xff0c;交流工作。对方是个女的&#xff0c;问验收杀毒软件。我一愣&#xff1a;周总没说啊。回答呆会问问。问住宿…

作者头像 李华
网站建设 2026/6/10 14:44:24

<span class=“js_title_inner“>科技企业家 | 驭势科技吴甘沙:自动驾驶领域的“长跑者”</span>

当今科技创新已成为决定经济社会发展质量的关键。然而从“书斋”到“车间”&#xff0c;从“论文”到“产品”&#xff0c;创新之路绝非坦途。破局之道&#xff0c;则在于“人”。在“十五五”开局的关键节点&#xff0c;我们推出“科技企业家”系列报道&#xff0c;不为讲述个…

作者头像 李华