如何用C++递归在BST(Binary Search Tree) 数有几个节点大于根节点的数字
2017-08-13 16:07
295 查看
小编上课时使用英文教材,所以对中文计算机词汇不是那么了解,所以,这里先表示抱歉。但是,我还是尽量使用中文计算机词汇来表达,这样有助于你们能看的懂小编在写什么。
现在,要实现在Binary Search Tree, 也就是二叉搜索树。下面小编就用BST来表示二叉搜索树,因为这样方便。关于知识点,小编就不在写了,不懂得就百度吧!
OK,现在就展示如何用C++递归来实现这个问题。
下面是展示运行结果:
![](https://oscdn.geek-share.com/Uploads/Images/Content/201708/032e440b860cf9bc958e666e313842e0)
有可能大家对这个结果看不懂,没事小编会接触你们的疑惑的。
下面展示的是小编在白纸上根据结果的展示来描述这个BST.
![](https://oscdn.geek-share.com/Uploads/Images/Content/201708/40b8ef68aa9b863cd317d927f645c3e2)
所以,根据这个树的形状,就可以知道比数字21大的数字一共有8个。
希望这篇文章对大家有所帮助,以后,小编还会继续写有关BST的C++递归博客送给大家。敬请期待吧!
现在,要实现在Binary Search Tree, 也就是二叉搜索树。下面小编就用BST来表示二叉搜索树,因为这样方便。关于知识点,小编就不在写了,不懂得就百度吧!
OK,现在就展示如何用C++递归来实现这个问题。
//Function prototype是写在.h文件 struct node { int data; node * left; node * right; }; class table { public: //Count the number of nodes with data greater than the root's data in a BST int count_greater_root(); private: //Count the number of nodes with data greater than the root's data in a BST //这个是专门用递归来实现的 //也叫做recursive function int count_greater_root(node * root, int num); }; //下面一部分是来实现这两个函数的 //实现函数在.cpp文件里 int table::count_greater_root() { return count_greater_root(root,root->data); } int table::count_greater_root(node * root, int num) { if(!root) return 0; if(root->data > num) { return count_greater_root(root->right,num)+count_greater_root(root->left,num) + 1; } return count_greater_root(root->left,num)+count_greater_root(root->right,num); } //下面是在主函数里进行调用这些函数 //主函数也是写在.cpp文件里的 int main() { table object; int result = object.count_greater_root(); cout<<"The result is: "<<result<<endl; return 0; }
下面是展示运行结果:
有可能大家对这个结果看不懂,没事小编会接触你们的疑惑的。
下面展示的是小编在白纸上根据结果的展示来描述这个BST.
所以,根据这个树的形状,就可以知道比数字21大的数字一共有8个。
希望这篇文章对大家有所帮助,以后,小编还会继续写有关BST的C++递归博客送给大家。敬请期待吧!
相关文章推荐
- 如何使用C++递归来实现在BST(Binary Search Tree)里将所有的叶子节点上的数字求和
- 如何用C++递归来查找BST中的根节点的inorder successor
- 如何使用C++递归来实现查找BST(Binary Search Tree)的最大高度
- [C++]LeetCode: 93 Binary Search Tree Iterator (经典题,非递归的中序遍历)
- 如何用C++递归来删除所有的BST节点
- 使用递归来实现在ARR里如何删除每一个list的第一个节点不是数字‘2’
- DevExpress实现TreeList向上递归获取符合条件的父节点
- VC++ 中如何更改Tree Control控件中节点的背景色和节点文字的颜色
- SWT/Jface TreeViewer 如何刷新后,展开原来的节点
- 递归实现数字的组合(C++)
- 如何用C++递归的方法来将循环链表的unique data找出来
- 利用有限的几个数字(0~9)求一个数A大于正整数K且是最小的那个
- [数据结构]10.2实现binary search tree的查找和插入操作,用非递归的方法实现
- c++中如何将uint8_t按数字输出
- c++模板类构建AVlL树及AVL树的单双旋转图文简述,以及插入新节点后如何通过旋转使之继续保持平衡
- BST(Binary Search Tree) 二叉查找树
- c++实现判断在命令行中输入几个数字然后对输入的数字进行冒泡法排序
- UltraWebTree的递归绑定和节点拖动
- 如何让EasyUI的Tree或者ComboTree节点不显示图标?
- C++ Implement binary search Tree(BST)