直接开干,冲冲冲!!!(这篇文章只包含一些基础知识,下篇我将会分享些代码,希望大家能够学好基础)
https://www.cs.usfca.edu/~galles/visualization/Algorithms.html
这个网址可供学习
1.树的基本概念
1).树是包含n个结点,n-1条边的有穷集合。
2).父结点:含有子结点的结点称为父结点(或者是双亲结点),且没有父结点的结点称为根结点。
子结点和父结点 可以理解成双亲和孩子的关系。
3).结点的度:该结点含有子结点的个数
4).树的度:若一个结点的度大于所有结点的度,则该结点就是树的度。
5).兄弟结点:具有相同父结点的结点
6).堂兄弟结点:父结点在同一层的结点。
7).叶结点:度为0的结点
-------------------------------------------------------------------------------
2.树的性质
1).树的结点数 = 每个结点度数 + 1
2).m叉树
树最大的度为m,且任意结点的度只要小于m都是m叉树
3).度为m的树
该树必有一个结点的度为m,其他结点的度可以小于m
------------------------------------------------------------------------------
3.特殊的树
1).二叉树
1.度最大为2的树
2.每个结点最多有2棵子树
3.左右子树的顺序不能互换,因为二叉树为有序树
1》二叉树的性质
1.第i层,最多有-------------2^(i-1)个结点
2.如果二叉树的深度为h,最多有--------------2^h-1(是首项为1,公比为2的等比数列)
3.二叉树中,子结点(度为0)的个数为------n0, 度为2的结点数位----------n2,则满足性质
-------------------n0=n2+1;
2).满二叉树
每个结点的度为2,除了子结点的度为0,不存在其他度。(是特殊的二叉树,满足二叉树的性质)
1》.满二叉树的性质
1.若给满二叉树编号,若根节点为1,则第i个结点的左孩子的编号为------2*i,右孩子为---2*i+1
2.第h层,第一个结点的编号为----------2^(h-1),且该层共有结点数为----------2^(h-1)
3.若共有n个结点,那么深度为 log2(n+1)
3).完全二叉树
1.只有最后两层可能存在叶结点。
2.最多只有一个度为1的结点。
1》.完全二叉树
1.共有n个结点,若第i个结点满足 i<n/2则为分支节点,否则为叶结点
4).平衡二叉树
任一点结点的左子树和右子树的深度不超过一。
5).排序二叉树
左子树上有的结点的关键字均小于根节点,右子树的结点个关键字均大于根节点。