学习二插树的创建

原创 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语言中,链表是通过指针相关实现的。而单链表是链表的其中一种,关于单链表就是其节点中有数据域和只有一个指向下个节点的指针域。创建单链...

二插排序树的各种操作

  • 2011年06月27日 08:36
  • 10KB
  • 下载

二插排序树各种算法

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

第十四周 项目1(3)验证二插排序树

问题描述及代码: #ifndef BTREE_H_INCLUDED #define BTREE_H_INCLUDED /* *烟台大学计控学院 *作 者:王力源 *完成日期...

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

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

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...

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

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

头插法创建链表并且输出

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

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

单链表的创建、销毁与K结点处插入新结点
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:学习二插树的创建
举报原因:
原因补充:

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