二叉搜索树的搜索和最值情况
2015-12-19 12:02
211 查看
二叉搜索树是一种排序树,其左子树的值<=根节点<=右子树,根据此公式,可以很方便的得出二叉树搜索树的最值,其代码如下:
二叉搜索树的搜索情况代码如下,key为待搜索的值:
注意,这是利用循环进行递归,而不是用函数进行递归,所以效率较函数递归要高,因为利用函数递归的话,计算机要保存断点,寄存器,复制变量等等,消耗计算机的性能。下面的代码就是利用函数,不可取。
typedef struct BiNode { char data; BiNode *left,*right; }BiNode,*BiTree; void TreeMinimum(BiTree &T)//**是对指针的引用,为根节点** { while(T->left!=NULL) { T=T->left; } } void TreeMaxmum(BiTree &T) { while(T->right!=NULL) { T=T->right; } }
二叉搜索树的搜索情况代码如下,key为待搜索的值:
void TreeSearch(BiTree &T,char key) { while(T!=NULL && key!=T->data) { if(key<T->data) { T=T->left; } else { T=T->right; } } }
注意,这是利用循环进行递归,而不是用函数进行递归,所以效率较函数递归要高,因为利用函数递归的话,计算机要保存断点,寄存器,复制变量等等,消耗计算机的性能。下面的代码就是利用函数,不可取。
void TreeSearch(BiTree &T,char key) { if(T==NULL || key==T->data) { return T; } if(key<T->data) { return TreeSearch(T->left,key); } else { return TreeSearch(T->right,key); } }
相关文章推荐
- tc-SRM-626-DIV1-250
- Hive的日期函数
- 自己动手写CPU之第九阶段(8)——MIPS32中的LL、SC指令说明
- shell 入门
- C#中使用DotNetZip选择指定文件并解压
- START WITH CONNECT BY PRIOR子句实现递归查询
- Received CISSP Lapel PIN
- Auto Layout(Storyboard)
- 带有EXISTS谓词的子查询
- MySQL的timeout超时你遇到过几种情况
- 开源日志系统比较:scribe,chukwa,kafka,flume
- 使用 Node.js、Express、AngularJS 和 MongoDB 构建一个Web程序
- Python 基础【第八篇】变量
- 在PHP中使用协程实现多任务调度
- CP学习笔记(9) - 迭代
- UFLDL教程答案(4):Exercise:Softmax Regression
- hdu 4472 Count (递推)
- datatables.js 简单使用--多选框和服务器端分页
- BING算法——思路整理(目标检测算法)
- 摩托罗拉(Motorola) MC2180条码采集器 .NET开发 接入条码组件