BST(binary search tree)类型题目需要用到的头文件binary_tree.h

下面是二叉搜索树需要用到的头文件binary_tree.h


#include <stdio.h>

struct BinaryTreeNode{
    int value;
    BinaryTreeNode* pLeft;
    BinaryTreeNode* pRight;
};


BinaryTreeNode* CreateBinaryTreeNode(int value){
    BinaryTreeNode* pNode = new BinaryTreeNode();
    pNode->value = value;
    pNode->pLeft = NULL;
    pNode->pRight = NULL;

    return pNode;
}

void ConnectTreeNodes(BinaryTreeNode* pParent, BinaryTreeNode* pLeft, BinaryTreeNode* pRight){
    if(pParent != NULL){
        pParent->pLeft = pLeft;
        pParent->pRight = pRight;
    }
}

void PrintTreeNode(BinaryTreeNode* pNode){
    if(pNode != NULL){
        printf("value of this node is: %d\n ", pNode->value);
        if(pNode->pLeft != NULL)
            printf("value of its left child is: %d \n", pNode->pLeft->value);
        else
            printf("left child is null. \n");

        if(pNode->pRight != NULL)
            printf("value of its right child is: %d \n", pNode->pRight->value);
        else
            printf("right child is null. \n");
    }else{
        printf("this node is null. \n");
    }
    printf("\n");
}

void PrintTree(BinaryTreeNode* pRoot){
    PrintTreeNode(pRoot);
    if(pRoot != NULL){
        if(pRoot->pLeft != NULL)
            PrintTree(pRoot->pLeft);

        if(pRoot->pRight != NULL)
            PrintTree(pRoot->pRight);
    }
}

void DestroyTree(BinaryTreeNode* pRoot){
    if(pRoot != NULL){
        BinaryTreeNode* pLeft = pRoot->pLeft;
        BinaryTreeNode* pRight = pRoot->pRight;

        delete pRoot;
        pRoot = NULL;

        DestroyTree(pLeft);
        DestroyTree(pRight);
    }
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值