BST算法 C语言

#include<stdio.h>
#include<stdlib.h>
#include <iostream>
typedef struct TreeNode {
    int data;
    struct TreeNode* right;
    struct TreeNode* left;
}TreeNode;
TreeNode* bstNode(TreeNode* T, int data) {
    if (T)
    {
        if (T->data==data)
        {
            return T;
        }
        else if (data<T->data)
        {
            bstNode(T->left, data);
        }
        else if (data>T->data)
        {
            bstNode(T->right, data);
        }
    }
    else {
        return NULL;
    }
}
void inser(TreeNode** T, int data) {
    if (*T==NULL)
    {
        *T = (TreeNode*)malloc(sizeof(TreeNode));
        (*T)->data = data;
        (*T)->left = NULL;
        (*T)->right = NULL;
    }
    else if ((*T)->data==data)
    {
        return;
    }
    else if (data>(*T)->data)
    {
        inser(&(*T)->right, data);
    }
    else if (data<(*T)->data)
    {
        inser(&(*T)->left, data);
    }
}
void preorder(TreeNode*T) {
    if (T)
    {
        printf("%d", T->data);
        printf("\n");
        preorder(T->left);
        preorder(T->right);
    }
}
int main()
{
    TreeNode* T = NULL;
    int trymodel[6] = {4,5,19,23,2,8};
    for (int i = 0; i < 6; i++)
    {
        inser(&T,trymodel[i]);
    }
    preorder(T);
    
}

 参考:

分类: Data Structure | tyrantlucifer

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值