本篇介绍的树是图论中的广义树。
树的概念
树是一种无向图,并且这种图不包含环与回路,树可以分为有根树与无根树,概念看似很抽象,其实树就和我们通常见到的树有着相似的形状(倒过来看)。
如图:
该图中不存在回路,对于有根树,我们定义途中最上方的结点为根结点,最下层的结点为叶子结点。(本图是一张二叉树)
同理本图也是一棵树。
树的模型
在建树时通常没有固定的模板。但是由于树的性质我们可以写出树的基本结点。
链表形式代码如下:
struct Node{
int data; //结点数据
Node *a[X]; //指针数组指向所有子结点
Node *father; //指向父亲结点
};
Node *root = new Node;
内存池(数组)形成:
struct Node{
int data; //结点数据
int a[X]; //数组存储所有子结点位置
int father; //存储父亲位置
}TREE[MAXN]; //内存池