学习二插树的创建

#include <stdio.h>
#include <stdlib.h>
#include <assert.h>
#define TREE_TYPE int
#define size 15

//定义树形结构
typedef struct Tree
{
    TREE_TYPE value;
    struct Tree* left;
    struct Tree* right;
}Tree_node;

//根节点作为全局静态变量
static Tree_node* root;

//初始化树
void create_tree()
{
    root = NULL;
}

//向树中插入数据
Tree_node* insert(Tree_node *node,TREE_TYPE value)
{
    if(node == NULL)
    {
	node = (Tree_node*)malloc(sizeof(Tree_node));
	node->value = value;
	node->left = NULL;
	node->right = NULL;
	if(NULL == root)
	    root = node;
    }
    else
    {
	if(value < node->value)
	    node->left = insert(node->right,value);
	else
	    node->right = insert(node->right,value);
    }
    return node;
}

//显示树中所有节点内容
void show_all(Tree_node* node)
{
    if(NULL != node)
    {
	if(NULL != node->left);
	    show_all(node->left);
	printf("%d  ",node->value);
	if(NULL != node->right);
	    show_all(node->right);
    }
}

void main(void)
{
    create_tree();
    //插入
    TREE_TYPE list[size] = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15};
    int i;
    for(i = 0;i < size;i++)
	insert(root,list[i]);
    //显示
    show_all(root);
    printf("\n");
    return;
}

阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/admin_gt/article/details/52357222
文章标签: 数据结构 二插树
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭