学习二插树的创建

原创 2016年08月29日 22:41:10
#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;
}

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

C++二插树和值与子树求解

#include #include using namespace std;template struct Node { Type data; Node *left; No...

二插排序树各种算法

package binarySortTree; public class  SNode> implements Comparable>{ private T data; private SNod...

Leetcode 109 Convert Sorted List to Binary Search Tree 有序单链表构造平衡二插查找树

Given a singly linked list where elements are sorted in ascending order, convert it to a height bala...

二插排序树的各种操作

  • 2011-06-27 08:36
  • 10KB
  • 下载

二插树的生成演示 vc++

  • 2009-04-17 13:07
  • 64KB
  • 下载

单链表的整表创建--头插法

/*单链表的整表创建*//********算法思路************ *1.创建链表单结点; *2.声明一指针p和计数器变量i; *3.让L的头结点的指针指向NULL,即建立一个带头结点的单链表...

单链表的创建、销毁与K结点处插入新结点

单链表的创建、销毁与K结点处插入新结点

头插法、尾差法创建单链表及其合并

头插法图示: 尾差法图示: 代码: package 数据结构; import java.util.Scanner; /** * 带头结点的链表的创建 * @author w...

头插法创建链表并且输出

1) #include #include #include typedef struct Node { char data; struct Node *next; }Node,*LinkList;...

单链表整表的创建--尾插法

/*单链表的整表创建*//********算法思路************ *1.创建链表单结点; *2.声明一指针p和计数器变量i; *3.让L的头结点的指针指向NULL,即建立一个带头结点的单链表...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)