4_树
树是n(n≥0)个结点的有限集。在任意一棵非空树中:
(1)有且仅有一个特定的称为根的结点;
(2)当n>1时,其余结点可分为m(m>0)个互不相交的有限集T1,T2,…,Tm,其中每一个集合本身又是一棵树,并且称为根的子树。
![](https://images2018.cnblogs.com/blog/717232/201803/717232-20180328201149281-1456903020.png)
树作为一种逻辑结构,显然是一种递归的结构,同时也是一种分层结构。
性质:
1、n个结点的树中有n-1条边
2、树中结点数等于所有结点度数加1
3、度为m的树中第i层上至多有mi-1个结点(i>=1)(即算作每个结点的度为m,这样多一层便多一次方倍(除去第一层根结点所以-1))
4、高度为h的m叉树至多有(mh-1)(m-1)个结点。(mh+mh-1+...+m+1=(mh-1)(m-1))
5、具有n个结点的m叉树的最小高度为 logm(n(m-1)+1) (推理不出,死记)
基本操作:
插入类:初始化置空、按定义创建、结点赋值、插入树作为子树
删除类:树清空、销毁结构、删除结点的子树
查找类:根结点、当前结点、当前结点双亲结点、当前节点左/右子节点、当前节点最左/右子结点、、判空、求深、遍历
二叉树
特殊二叉树:满二叉树、完全二叉树、二叉排序树、平衡二叉树
性质:
1、二叉树上子结点数等于度为2的结点数加1
2、1)二叉树的第 i 层上至多有
个结点
2)深度为 k 的二叉树上至多含
个结点
4、1)具有 n 个结点的完全二叉树的深度为![](data:image/png;base64,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)
2)结点 i 所在的深度为log2i+1。
5、完全二叉树标上顺序编号,则对其中任意一个编号为 i 的结点:
1)若 i=1,则该结点是二叉树的根无双亲,否则有双亲,偶为左子奇为右子,编号 i/2 或 (i-1)/2 的结点分别为双亲结点;
2)若2i>N或2i+1>N,i分别无左子或右子,否则结点 i 的左子为2i或右子为2i+1;
顺序存储结构
适用满二叉树和完全二叉树,对于一般二叉树就用0来表示没有结点的位置
注意:数组下标从1开始,二叉树的顺序存储与树的顺序存储之间关系
链式存储结构
二叉树遍历
二叉树的应用是在遍历为基础上,进行查找、添加、删除,与线性表的应用的分类上不大一样。
前序遍历 中序遍历 后序遍历
非递归遍历:非递归遍历(栈) 层次遍历(队列)
应用:输入结点值,构造二叉树 (先序遍历) 统计二叉树中叶子结点的个数 (先序遍历) 求二叉树的深度 (后序遍历)
线索二叉树
二叉树的指针域是结点数的2倍,n个结点的二叉树有2n个指针域,有n-1条边(除了根结点外每个结点都有一条边指向),即有n-1个含边的非空指针域,由此空指针域可由指针域与非空指针域做差得到:2n-(n-1)=n+1 个,且存在于叶结点。
利用这些空结点一方面避免存储资源浪费,更重要的另一方面,在二叉树链表上仅知道每个结点的左右子,若每次想知道某结点前驱后继就需要遍历一次,利用这些空指针域做线索化就能将二叉树转化为一个双向链表,对查找、插入、删除结点带来了方便。
为此增设两个标志域ltag和rtag存放bool值(占内存小于指针变量lchild和rchild)。
树、森林
树的存储结构:
双亲表示法(带指针域的数组,每个元素(结点)指针域指向自己的双亲结点)、便于寻找结点双亲,寻找子女需遍历
孩子表示法(在双亲表示法基础上,将指针域改为指向自己的子结点,并且被指向的结点具有同样结构,同样地其指针域同样指向自己子结点,这样就形成了自上而下的链表,第一列为头结点,没有子结点的结点指向NULL)、便于寻找结点子女,寻找双亲需遍历
以上两种方法可以合二为一
孩子兄弟表示法(二叉树结点链,只不过左指针指向左边第一个孩子,右指针指向自己的右边下一个兄弟,从根结点开始)、方便转化为二叉树,易于查找结点子女,缺点是难找双亲,可以每个结点加一个parent域指向其双亲来解决
树、森林与二叉树的转化
1.孩子兄弟法使森林中每棵树—>二叉树。2.以第一棵树的二叉树作为根结点树,然后依次接上左子
孩子兄弟表示法可以将普通树转化成二叉树存储,在实际操作中,可以应用二叉树的性质来解决普通树或者森林的问题。
树的应用—并查集