如何用C++递归来删除所有的BST节点
2017-08-16 13:34
302 查看
关于BST的知识点,小编不在这里细讲了,不懂的大家自行百度吧或者查找有关资料。但是,小编还是会告诉你BST的全名是啥,不然你们查资料太费事了。BST的全名是binary search tree。大概中文名就叫做二叉搜索树。
下面就展示如何用C++代码来实现这道题目
下面是如何实现这两个函数了
下面是在主函数里如何调用这两个函数来测试这两个函数写的对不对
是不是感觉这代码简洁明了?那现在是展示结果的时候了。关于在主函数里调用了display函数,这个函数是已经写好的了。
关于这个结果,小编还是解释一下。这个Level 1是表示根节点的位置,而这棵树的高度是6. 当运行完这个代码的时候,这棵树就变成empty tree了。所以,这就说明这个代码写的是对的。如果哪里写的不对或者哪里不清楚的,就给小编留言吧!欢迎骚扰!
以后小编还会继续写有关数据结构的问题,敬请期待吧!
下面就展示如何用C++代码来实现这道题目
//This is the table.h file //This file contains the struct and class //The build function and display functions are always written #include<iostream> #include<cstring> #include<cctype> using namespace std; struct node { int data; node * left; node * right; }; class table { public: //Deallocate all nodes in a BST void deallocate(); private: node * root; //Deallocate all nodes in a BST void deallocate(node *& root); };
下面是如何实现这两个函数了
//This is the table.cpp file #include "table.h" void table::deallocate() { deallocate(root); } void table::deallocate(node *& root) { if(!root) return; deallocate(root->left); deallocate(root->right); delete root; root = NULL; return; }
下面是在主函数里如何调用这两个函数来测试这两个函数写的对不对
//This is the main.cpp file #include "table.h" int main() { table object; //Deallocate all nodes in a BST object.deallocate(); object.display(); return 0; }
是不是感觉这代码简洁明了?那现在是展示结果的时候了。关于在主函数里调用了display函数,这个函数是已经写好的了。
关于这个结果,小编还是解释一下。这个Level 1是表示根节点的位置,而这棵树的高度是6. 当运行完这个代码的时候,这棵树就变成empty tree了。所以,这就说明这个代码写的是对的。如果哪里写的不对或者哪里不清楚的,就给小编留言吧!欢迎骚扰!
以后小编还会继续写有关数据结构的问题,敬请期待吧!
相关文章推荐
- 如何使用C++递归来删除单链表中某一个由用户输入特定的值
- 如何用C++递归来查找BST中的根节点的inorder successor
- CListCtrl中如何删除所有的列 - wrhwww - C++博客
- [笔试题 7][c/c++]删除两个双向链表中相同元素的所有节点
- 如何用C++递归来实现copy even data from the original BST
- 使用递归来实现在ARR里如何删除每一个list的第一个节点不是数字‘2’
- C/C++ | 28-20 写出程序删除链表中的所有节点
- 如何用C++递归在BST(Binary Search Tree) 数有几个节点大于根节点的数字
- 如何使用C++递归来实现在BST(Binary Search Tree)里将所有的叶子节点上的数字求和
- 【K&R 习题 1-23】删除C/C++语言中的程序中的所有注释语句
- Eclipse 如何删除所有断点
- c++中List在遍历时删除节点的方法(转载)
- C/C++,数据结构单链表(采用C++&quot;引用&quot;方法)(寻找节点、在某处插入结点、删除某位置结点)
- 利用C++如何覆盖或删除指定位置的文件内容
- 节点的删除 - 同时删除所有绑定要节点上的对象
- Oracle 如何删除掉一个用户下的所有对象
- 节点的删除 - 同时删除所有绑定要节点上的对象
- c++实现二叉树的查找,插入,删除,深度,叶子节点数,度为1的节点数(递归方法)及运行实例结果
- 如何删除eclipse中某个Web项目的所有SVN信息
- 如何一次性删除List里的所有元素?