数据结构树
一.树的定义
树:n个结点的有限集。
任意一个非空树中:1.有且仅有一个特定的称为根(root)的结点
2.当n>1,其余结点可分为m个互不相交的有限集T1,T2…..其余每一个集合本身又是一颗树,称为根的子树。
注意:根结点唯一
子树个数无限制,不相交。
二.结点的分类
度:节点拥有的子树数
内部结点(除根节点):叶节点(终端结点)度为0,分支结点(非终端结点)度不为0
树的度为内部结点的度的最大值
三.结点间的关系
结点的子树称为节点的孩子,结点被称为孩子结点的双亲
同一个双亲的孩子之间互称兄弟,结点的祖先是从根到该结点所经分支上的所有节点。以某节点为根的子树中的任意结点都称为该节点的子孙。
四.树的其他相关概念
1. 层 树中结点的最大层次称为树的深度或高度
2. 有序树:树中结点的各子树看成从左至右是有次序的
无序树
3. 森林:m棵互不相交的树的集合
五.树的存储结构
1.双亲表示法
每个结点中,附设一个指示器指示其双亲结点到链表中的位置。
存储结构的设计是一个非常灵活的过程,一个存储结构设计得是否合理,取决于基于该存储结构的运算是否适合,是否方便,时间复杂度好不好等。
2.孩子表示法
3.孩子兄弟表示法
任意一棵树,他的结点的第一个孩子如果存在就是唯一的,他的有兄弟如果存在也是唯一的。设置两个指针,分别指向该结点的第一个孩子和此结点的右兄弟。