博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
二叉树搜索
阅读量:7237 次
发布时间:2019-06-29

本文共 1406 字,大约阅读时间需要 4 分钟。

删除数值一般来说,须要依据以下几种情况分别进行处理:1.须要删除的节点没有左儿子,那么把右儿子提上去2.须要删除的节点的左儿子没有右儿子,那么就把左儿子提上去3.以上两种情况都不满足的话,就把左儿子的子孙中最大的节点提到须要删除的节点上和堆一样。非常多情况下不须要自己实现二叉搜索树,使用C++中的STL,STL里有set和map容器,set是使用erc搜索树维护集合的容器,而map则是维护键和键相应的值得容器*/#include 
#include
using namespace std;int main(){ set
s; //声明 s.insert(1); //插入元素 s.insert(3); s.insert(5); set
::iterator ite;; //查找元素 ite = s.find(1); if (ite == s.end()) puts("not found"); else puts("found"); ite = s.find(2); if (ite == s.end()) puts("not found"); else puts("found"); s.erase(3); //删除元素 if (s.count(3) != 0) //其它的查找元素的方法 puts("found"); else puts("not found"); for (ite = s.begin(); ite != s.end(); ++ite){ //遍历全部元素 printf("%d\n", *ite); } return 0;}#include
#include
#include
using namespace std;int main(){ map
m; //声明(int为键。 const char*为值) m.insert(make_pair(1, "ONE")); //插入元素 m.insert(make_pair(10, "TEN")); m[100] = "HUNDRED"; //其它的写法 map
::iterator ite; //查找元素 ite = m.find(1); puts(ite->second); //(输出)ONE ite = m.find(2); if (ite == m.end()) puts("not found"); else puts(ite->second); puts(m[10]); //其它的写法 m.erase(10); //删除元素 for (ite = m.begin(); ite != m.end(); ++ite){ //遍历一遍全部元素 printf("%d: %s\n", ite->first, ite->second); } return 0;}

转载地址:http://grofm.baihongyu.com/

你可能感兴趣的文章
分布式消息系统Kafka初步(一) (赞)
查看>>
常见浏览器兼容性问题与解决方式
查看>>
pfsense 2.2RC版本应用
查看>>
图像处理与机器视觉网络资源收罗——倾心大放送
查看>>
超过响应缓冲区限制
查看>>
Fiddler 实现手机的抓包
查看>>
浅谈C++多态性
查看>>
[翻译] GVUserDefaults
查看>>
Openlayer跨域问题解决
查看>>
Windows7下的免费虚拟机(微软官方虚拟机)
查看>>
shell中判断用法
查看>>
js的 new image()---转
查看>>
Hibernate Criterion
查看>>
AFNetworking 使用方法(2.0)
查看>>
React Canvas:高性能渲染 React 组
查看>>
Mono产品生命周期
查看>>
FetchType与FetchMode的区别
查看>>
GCD && Run Loops学习笔记
查看>>
SQLite Learning、SQL Query Optimization In Multiple Rule
查看>>
文件编码格式(转)
查看>>