1.思维导图
2.笔记
1.树
1)树的定义:树是由n(n>=0)个节点组成的有限集合(树中元素通常称为节点)。n=0的树称为空树;
树形结构是非线性数据结构。
2)树的术语:
结点:包含了数据元素及若干个指向其子树的分支。
结点的度:结点的子树数目或分支个数。
树的度:在树中取各结点的度的最大值.
分支结点(又称非终端结点):度大于零的结点。
叶子结点(又称终端结点):度为零的结点。
树的深度:树中结点(该结点必为树叶结点)的最大层次。
2.二叉树
1)由一个结点和两颗互不相交、分别称为这个根的左子树和右子树的二叉树构成(递归定义)
2)满二叉树:一颗深度为k的二叉树若每一层上的结点数都达到最大
3)完全二叉树:一颗具有n个结点且深度为k的二叉树若前k-1层的结点数都达到最大,剩余的结点在第k层中从左至右连续分布
4)二叉树的遍历(递归思想!):
先序遍历(DLR)若树不空,则先访问根结点,然后依次先根遍历各棵子树。
中序遍历(LDR)
后序遍历(LRD) 若树不空,则先依次后根遍历各棵子树,然后访问根结点。
层次遍历 :若树不空,则自上而下自左至右访问树中每个结点。
5)二叉树的存储:
顺序存储(只适用于完全二叉树)——可以用于排序算法中的堆排序
链式存储(最普遍的存储方式)——由于结点可能为空,所以会比较浪费空间
序算法中的堆排序
链式存储(最普遍的存储方式)——由于结点可能为空,所以会比较浪费空间