Wan2.1-umt5赋能STM32开发:嵌入式C语言代码生成与优化

核心内容摘要

2026年不懂AI安全的测试员失业危机:专业分析与应对策略
Qwen3-ASR-1.7B与计算机网络:构建分布式语音处理系统

AI Agent在智能环境污染溯源中的实践

以下是一个简单的二叉搜索树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 树、红黑树。

19岁大学生免费h软件-19岁大学生免费h软件应用

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

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