1.思维导图
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-IZzLlwFo-1619756960212)(C:\Users\ACER\Pictures\QQ截图20210430111827.png)]
2.笔记
1.树:
(1)定义:树是一个n(n>=0)个结点的有序合集。
(2)树的术语:
结点:指树中的一个元素;
结点的度:指结点拥有的子树的个数,二叉树的度不大于2;
数的度:指树中的最大结点度数;
叶子:度为0的结点,也称为终端结点;
高度:叶子节点的高度为1,根节点高度最高;
层:根在第一层,以此类推;
2.二叉树:
(1)定义:由一个结点和两颗互不相交、分别称为这个根的左子树和右子树的二叉树构成(递归定义)
(2)性质:二叉树的第i层上至多有2^(i-1)个结点
深度为k的二叉树,至多有2^k-1个结点
(3)满二叉树:叶子节点一定要在最后一层,并且所有非叶子节点都存在左孩子和右孩子;
最特别的二叉树:完全二叉树:从左到右、从上到下构建的二叉树;
(4)完全二叉树的性质:
结点 i 的子结点为2i 和 2i+1(前提是都小于总结点数)
结点 i 的父结点为 i/2
(5)二叉树的遍历(要有递归的思想!!!):
先序遍历:根->左子树->右子树(先序)
中序遍历:左子树->根->右子树(中序)
后序遍历:左子树->右子树->根(后序)
(6) 二叉树的存储结构:
顺序存储(只适用于完全二叉树)——可以用于排序算法中的堆排序
链式存储(最普遍的存储方式)——由于结点可能为空,所以会比较浪费空间
如果有n个节点,则有2n个left、right指针,但是用到的只有n-1个指针
线索存储(改进的方法)
如果有n个节点,则有2n个left、right指针,但是用到的只有n-1个指针
线索存储(改进的方法)