二叉树的递归插入
来源:互联网 发布:手机乐器软件 编辑:程序博客网 时间:2024/05/17 08:01
/*********************二叉树的递归插入******************/template<class Type>class TreeNode{public: Type data; TreeNode *left; TreeNode *right; TreeNode(Type value, TreeNode *l = nullptr, TreeNode *r = nullptr) :data(value), left(l), right(r){}};template<class Type>class Tree{private: TreeNode<Type> *root; void visit(TreeNode<Type> *tree); void insert(Type key, TreeNode<Type> *&leaf); void preOrder(TreeNode<Type> *tree);public: Tree(); ~Tree(); void insert(Type key); void preOrder();};template<class Type>void Tree<Type>::visit(TreeNode<Type> *tree){ cout << tree->data << " ";}template<class Type>void Tree<Type>::preOrder(TreeNode<Type> *tree){ if (tree != nullptr) { visit(tree); preOrder(tree->left); preOrder(tree->right); }}template<class Type>void Tree<Type>::preOrder(){ preOrder(this->root);}template<class Type>Tree<Type>::Tree(){ cout << "构造函数" << endl; this->root = nullptr;}template<class Type>Tree<Type>::~Tree(){ cout << "析构函数" << endl;}//插入节点template<class Type>void Tree<Type>::insert(Type key, TreeNode<Type> *&leaf){ if (leaf == nullptr) leaf = new TreeNode<Type>(key, nullptr, nullptr); else if (key < leaf->data) insert(key, leaf->left); else if (key>leaf->data) insert(key, leaf->right);}template<class Type>void Tree<Type>::insert(Type key){ insert(key, this->root);}//测试程序int main(){ Tree<int> tre; tre.insert(10); tre.insert(6); tre.insert(14); tre.insert(5); tre.insert(8); tre.insert(11); tre.insert(18); tre.preOrder(); cout << endl; return 0;}
0 0
- 二叉树的递归插入
- 二叉树中插入节点的递归与非递归
- 二叉树的递归插入,中序遍历
- 二叉树的创建方法【递归】【循环】【插入】
- 算导--12.3-1二叉搜索树插入的递归版本
- 二叉树的非递归插入和遍历
- 二叉树插入算法的非递归版本
- 二叉查找树的实现(插入+递归调用)
- 【c++】二叉搜索树的插入、查找、非递归删除
- 二叉搜索树(BST)递归与非递归的插入、删除、查找的实现
- 二叉搜索树的实现(查找,插入,删除的递归与非递归)
- 二叉搜索树的基本功能的实现(递归及非递归直线插入,删除,查找)
- 带模板的二叉树包含递归遍历,与非递归,插入子树
- 二叉树的先序中序后序递归非递归遍历,插入删除等操作
- 关于搜索二叉树的各种操作(插入,删除,输出,查找,递归非递归排序)
- 查找二叉树的实现(查找,删除,插入)分别用递归和非递归
- 用递归的方法进行二叉树的搜索和插入
- 算法导论第十二章习题12.3-1---二叉树插入的递归版本
- flex布局
- hdu 1846 Brave Game (巴什博弈)
- 机器学习在工业应用中的新思考
- 函数的数据传递
- 从官网获取redhat
- 二叉树的递归插入
- 在css中em和rem的作用和分别
- 《C++ primer plus》第十七章 输入、输出和文件(二):文件的输入和输出 学习笔记
- hdu1492 The number of divisors(约数) about Humble Numbers
- 基于ARM9的汇编指令:数据传送指令,算术运算指令,比较指令和跳转指令
- 二叉树情况总结
- VisualStudio 跨平台(Linux)调试
- 丑数——空间换时间
- Android OpenGL渲染双视频