1.介绍
为什么要有树呢?这是因为数组存在插入和删除效率比较低的缺点,由此提出了链表,但链表还是存在查找效率比较低的问题,因此提出了树。树具有增删改查效率都比较高的特点。
2.术语介绍
image.png
重点有:
- 叶子节点:没有子节点的节点
- 节点的权:节点的值
- 路径:从root节点到该节点的路线
二叉树:每个节点最多只能有两个节点,例:
image.png
满二叉树:所有叶子节点都在最后一层,并且节点数=2^n-1,例如:
image.png
完全二叉树:所有的叶子节点都在最后一层或者在倒数第二层,并且最后一层的叶子节点从左到右都是连续的,倒数第二层从右往左都是连续的
image.png
前序、中序、后序遍历
前序遍历:先输出父节点,再遍历左子树,最后遍历右子树
中序遍历:先遍历左子树,再输出父节点,最后遍历右子树
后序遍历:先遍历左子树,再遍历右子树,最后输出父节点
小结:可以根据父节点的位置来判断是前中后序