编程日志5.10

二叉搜索树的基础代码

#include
using namespace std;

//二叉搜索树节点定义
template
struct TreeNode {
    T val;//一个类型为T的成员变量val,用于存储树节点的值
    TreeNode* left;//left、right两个指针类型的成员变量,分别用于指向树节点的左子节点和右子节点
    TreeNode* right;
    //这是一个无参的构造函数,用于初始化树节点的成员变量。在这个构造函数中,将节点的值设置为0,左子节点和右子节点都设置为NULL。
    TreeNode():val(0),left(NULL),right(NULL){}
    //这是一个有参的构造函数,用于初始化树节点的成员变量。在这个构造函数中,将节点的值设置为给定的参数x,左子节点和右子节点都设置为NULL。
    TreeNode(T x):val(x),left(NULL),right(NULL){}
};

//二叉搜索树 类定义
template
class BinarySearchTree {
private://定义私有成员变量/函数
    TreeNode* root;//1.用于存储二叉搜索树的根节点指针
    TreeNode* insertNode(TreeNode* node, T value);//2.用于向二叉搜索树中插入一个结点
    TreeNode* removeNode(TreeNode* node, T value);//3.用于从二叉搜索树中删除一个结点
    bool searchNode(TreeNode* node, T value);//4.用于在二叉搜索树中搜索结点是否存在
    void inOrder(TreeNode* node);//5.用于按照中序遍历方式遍历二叉树
public://定义公共函数
    BinarySearchTree():root(NULL){}//6.构造函数,用于初始化二叉搜索树的根节点为NULL
    ~BinarySearchTree();//7.析构函数,用于释放动态分配的内存
    void insert(T value) {//8.用于向二叉搜索树中插入一个值
        root = insertNode(root, value);
    }
    void

你可能感兴趣的:(c++,算法,开发语言)