HG-ha/MTools一文详解:现代化AI桌面工具的安全沙箱机制与权限控制模型

核心内容摘要

领券公众号 Oauth2.0 授权链路:淘宝联盟三段式跳转 STATE 参数防重放设计
vue+springboot微信小程序 流浪动物救助捐赠管理系统

SpringAI智能客服集成实战:从架构设计到生产环境避坑指南

以下是一个简单的二叉搜索树Binary Search Tree, BST的 C 实现包含插入、删除、查找和遍历等基本操作#include iostream using namespace std; // 树节点结构 struct TreeNode { int val; TreeNode* left; TreeNode* right; TreeNode(int x) : val(x), left(nullptr), right(nullptr) {} }; class BST { private: TreeNode* root; // 插入节点递归辅助函数 TreeNode* insertHelper(TreeNode* node, int val) { if (!node) return new TreeNode(val); if (val node-val) node-left insertHelper(node-left, val); else node-right insertHelper(node-right, val); return node; } // 查找最小节点用于删除操作 TreeNode* findMin(TreeNode* node) { while (node-left) node node-left; return node; } // 删除节点递归辅助函数 TreeNode* deleteHelper(TreeNode* node, int val) { if (!node) return nullptr; if (val node-val) node-left deleteHelper(node-left, val); else if (val node-val) node-right deleteHelper(node-right, val); else { // 情况1叶子节点或仅有一个子节点 if (!node-left) return node-right; if (!node-right) return node-left; // 情况2有两个子节点 TreeNode* successor findMin(node-right); node-val successor-val; node-right deleteHelper(node-right, successor-val); } return node; } // 中序遍历递归 void inorderHelper(TreeNode* node) { if (!node) return; inorderHelper(node-left); cout node-val ; inorderHelper(node-right); } public: BST() : root(nullptr) {} // 插入操作 void insert(int val) { root insertHelper(root, val); } // 删除操作 void remove(int val) { root deleteHelper(root, val); } // 查找操作 bool search(int val) { TreeNode* cur root; while (cur) { if (val cur-val) return true; cur (val cur-val) ? cur-left : cur-right; } return false; } // 中序遍历 void inorder() { inorderHelper(root); cout endl; } }; int main() { BST tree; tree.insert(

; tree.insert(

; tree.insert(

; tree.insert(

; tree.insert(

; cout 中序遍历: ; tree.inorder(); // 输出: 20 30 40 50 70 cout 查找40: (tree.search(

? 存在 : 不存在) endl; cout 删除30后: ; tree.remove(

; tree.inorder(); // 输出: 20 40 50 70 }核心操作说明插入递归找到合适位置创建新节点时间复杂度$O(h)$$h$为树高度删除分三种情况处理叶子节点直接删除单子节点用子节点替换双子节点用后继节点右子树最小节点替换时间复杂度$O(h)$查找从根节点开始逐层比较时间复杂度$O(h)$遍历中序遍历可输出有序序列时间复杂度$O(n)$$n$为节点数注意二叉搜索树的性能取决于树的高度$h$。

理想情况下$h \log_2 n$平衡树最坏情况下$h n$退化为链表。

如需优化可研究平衡二叉搜索树如 AVL 树、红黑树。

WWW.888888.GOV.CN-WWW.888888.GOV.CN最新ios版v.23.80.67-红软基地应用

百度百家号客服电话人工服务

123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123 123