【课程设计/毕业设计】基于springboot的瑞幸咖啡店的点单收银系统的设计与实现【附源码、数据库、万字文档】

核心内容摘要

Degrees of Lewdity本地化部署指南:从环境配置到故障排查的完整方案
SFT对大语言模型的作用

Docker核心问题汇总(含原理、操作、网络全解析)

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

蓝莓视频在线观看-蓝莓视频在线观看应用

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

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