C++实现二叉搜索树的代码怎么写
发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,这篇"C++实现二叉搜索树的代码怎么写"文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇"
千家信息网最后更新 2026年11月03日C++实现二叉搜索树的代码怎么写
这篇"C++实现二叉搜索树的代码怎么写"文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇"C++实现二叉搜索树的代码怎么写"文章吧。
具体代码如下所示:
class BST{public: struct Node { int key;//节点的key int value;//节点的value Node* left; Node *right; int N;//节点的叶子节点数目 Node(int _key, int _value, int _N) { key = _key; value = _value; N = _N; } }; BST(); ~BST(); void put(int key, int value); int get(int key); int deleteKey(int key);private: Node* _deleteKey(int key, Node *x); Node* _deleteMin(Node *x); int size(Node *x); int _get(int key, Node* x); Node * _put(int key, int value,Node *x); Node * min(Node *x); Node* root;};inline int BST::size(Node * x){ if (x == nullptr)return 0; return x->N;}int BST::_get(int key, Node * x){ if (x == nullptr)return 0; if (x->key < key)_get(key, x->right); else if (x->key > key)_get(key, x->left); else { return x->value; } return 0;}BST::Node* BST::_put(int key, int value, Node * x){ if (x == nullptr) { Node *tmp = new Node(key, value, 1); return tmp; } if (x->key > key) { x->left=_put(key, value, x->left); } else if (x->key < key) { x->right=_put(key, value, x->right); } else x->key = key; x->N = size(x->left) + size(x->right) + 1; return x;}BST::Node* BST::min(Node * x){ if (x->left == nullptr)return x; return min(x->left);}BST::BST(){}BST::~BST(){}void BST::put(int key, int value){ root=_put(key, value, root);}int BST::get(int key){ return _get(key, root);}BST::Node* BST::_deleteKey(int key, Node * x){ if (x->key > key)x->left = _deleteKey(key, x->left); else if (x->key < key)x->right = _deleteKey(key, x->right); else { if (x->left == nullptr)return x->right; else if (x->right == nullptr)return x->left; else { Node *tmp = x; x = min(tmp->right); x->left = tmp->left; x->right = _deleteMin(tmp->right); } } x->N = size(x->left) + size(x->right) + 1; return x;}BST::Node* BST::_deleteMin(Node * x){ if (x->left == nullptr)return x->right; x->left = _deleteMin(x->left); x->N = size(x->left) + size(x->right) + 1; return x;}int BST::deleteKey(int key){ return _get(key, root);}以上就是关于"C++实现二叉搜索树的代码怎么写"这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注行业资讯频道。
内容
代码
节点
C++
搜索
文章
知识
篇文章
价值
叶子
大部分
就是
数目
更多
步骤
知识点
行业
资讯
资讯频道
频道
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
互联网络科技
上海睿民互联网科技有限公司
金诺互联网科技
互联网与科技发展
互联网科技金融公司
互联网科技排名
唐信互联网科技 大连
云创客互联网科技公司
新华互联网科技2019
字节跳动和互联网科技
互联网为啥属于高科技
浙江互联网科技研学营
互联网与医疗科技
区块链结合互联网科技
互联网营销推广黑科技
上海互联网科技公司ppt
2021世界互联网领先科技成果发布
同城互联网络科技
安徽零酒互联网科技有限公司
瑞安市蟠桃会互联网科技有限公司
山东特亿宝互联网科技有限公司
智能科技公司是互联网公司吗
北京互联网科技公司
高科技与互联网
互联网科技小贷
科技互联网创业计划书
华脉科技工业互联网产品
互联网科技与管理
昆明中奇联合互联网科技
版纳互联网科技选哪家