树的原理和实现
I. 树的含义:类似于链表的一种存储方式,像树枝一样分散存储(类似于家庭遗传图谱)。
II. 树的解释
A. 根节点:树开始的节点。
B. 子树:又树干分散出来的侧枝。
C. 类似于真实的树,树干动,则影响侧枝,侧枝动只影响侧枝。
III. C语言中定义树的方法
使用结构体
struct tree_node
{
节点成员的属性——数据域
//
储存枝干节点
//
储存主干节点
//
};
IV. 实例
又事件A、B、C,设置一个程序,使得A发生,B,C也发生,B,C没有关联,假设A、B、C三个事件都*一个整数变量,B是A的值的1/2,C是A的值的2倍。初值都为0.
理解题意可得,A就是树的主干,B、C分别是A的一个侧枝。
代码(只包含子函数,为包含主函数):
#include <stdio.h>
#include <string.h>
struct tree_node
{
int A=0;//设置主干
//end
struct tree_node*branch_B; //设置成链表,使用动态赋值。
//end
Structtree_node* brabch C;
//end
};
static struct tree_node* alloc_node()
{
struct tree_node* node= malloc (sizeof(struct tree_node)); //设置动态赋值
menset (node,0,sizeof(struct tree_node));
return node;
}
static viodfree_node (struct tree_node) //清空
{
free (node);