#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;
}
学习二插树的创建
最新推荐文章于 2022-07-09 13:48:50 发布