从图中可以看出,树的每个结点,都有不确定的指向他们的孩子的节点,如果我们定义这样一个结构体来便是数的结构的话:
struct TreeNode
{
int val;
struct TreeNodep1;
struct TreeNodep1;
…
};
是不能够表示一棵树的,因为我们并不确定一个节点的孩子有几个,而且节点的孩子树也不是一样的,
那么我们到底如何定义节点的结构呢?
树结构相对线性表就比较复杂了,要存储表示起来就比较麻烦了,既然保存值域,也要保存结点和结点之间
的关系,实际中树有很多种表示方式如:双亲表示法,孩子表示法、孩子双亲表示法以及孩子兄弟表示法
等。我们这里就简单的了解其中最常用的孩子兄弟表示法。
孩子兄弟法:这种方法非常的巧妙,每个节点结构体中只需要定义两个结构体指针就可以实现:
firstchild:第一个孩子指针
nextbrother:下一个兄弟指针
树的生活应用:文件系统