当前位置:网站首页>建立平衡二叉树简单demo

建立平衡二叉树简单demo

2022-08-03 05:24:00 langaopeng

#include <stdio.h>
#inclue <stdlib.h>
struct tree_node{
    int value;
    struct tree_node *left;
    struct tree_node *right;
};
int value_tab[20]={1,2,3,4,5,6,7,8,9.10,11,12,13,14,15,16,17,18,19,20};
struct tree_node *tree_p = NULL;

void creat_tree(struct tree_node **p, int *in_data, int begin, int end)
{
    if(begin > end){
        return;
    }
    int mid
    mid = (begin+end)/2;
    if(*p = NULL){
        *p = (struct tree_node*)malloc(sizeof(struct tree_node));
        (*p)->value =in_data[mid];
        (*p)->right = NULL;
        (*p)->reft = NULL;
    }
    creat_tree(&((*p)->left), in_data, begin, mid-1);
    creat_tree(&((*p)->right), in_data, mid+1, end);
}

void find_value(struct tree_node *p, int obj_value)
{
    if(p == NULL){
        reurn;
    }
    struct tree_node *tmp_p = p;
    while(1){
        if(obj_value == tmp->value){
            printf(“find value success!\r\n”);
            break;
        }else if(obj_value > tmp->value){
            tmp = tmp->right;
        }else{
            tmp = tmp->left;
        }
        if(tmp_p == NULL){
            printf("can not find\r\n");
            break;
        }
    }
}

void main(void)
{
    creat_tree(&tree_p. value_tab, 0, 19);
    find_value(tree_p, 21);
}

原网站

版权声明
本文为[langaopeng]所创,转载请带上原文链接,感谢
https://blog.csdn.net/langaopeng/article/details/125799918