树的表示——孩子兄弟表示法

树的表示——孩子兄弟表示法_第1张图片
从图中可以看出,树的每个结点,都有不确定的指向他们的孩子的节点,如果我们定义这样一个结构体来便是数的结构的话:

struct TreeNode
{
int val;
struct TreeNodep1;
struct TreeNode
p1;

};
是不能够表示一棵树的,因为我们并不确定一个节点的孩子有几个,而且节点的孩子树也不是一样的,

那么我们到底如何定义节点的结构呢?
树结构相对线性表就比较复杂了,要存储表示起来就比较麻烦了,既然保存值域,也要保存结点和结点之间
的关系,实际中树有很多种表示方式如:双亲表示法,孩子表示法、孩子双亲表示法以及孩子兄弟表示法
等。我们这里就简单的了解其中最常用的孩子兄弟表示法

孩子兄弟法:这种方法非常的巧妙,每个节点结构体中只需要定义两个结构体指针就可以实现:
firstchild:第一个孩子指针
nextbrother:下一个兄弟指针
树的表示——孩子兄弟表示法_第2张图片
树的表示——孩子兄弟表示法_第3张图片
树的生活应用:文件系统
树的表示——孩子兄弟表示法_第4张图片

你可能感兴趣的:(数据结构)