一、基本概念
- 1.满二叉树:最深一层都没有子节点,其它层都有左右两个节点
- 2.完全二叉树:是满二叉树的子集,在完全二叉树中最深一层的子节点往上的一层靠右边的节点没有子树
- 3.深度为3的满二叉树:
- 4.深度为2的满二叉树:
- 5.深度为2的完全二叉树:
- 6.深度为2的完全二叉树:
- 7.深度为2的完全二叉树:
- 8.深度为2的非完全二叉树:
二、二叉树的顺序存储
2.1 说明
- 1.顺序数组既要存储各个节点的数值,也要体现节点的兄弟、父子关系。
- 2.按照分层关系,按照完全二叉树的做法,从根节点开始编号,直到最深层的最右边的节点为止,数组的标号就是节点编号
- 3.能很方便求出各节点与其它节点间的关系
- 4.如果不是完全二叉树,会浪费空间,因此只有完全二叉树或接近完全二叉树的存储采用顺序存储
2.2 图示
- 1.节点有A B C D E F G H构成的二叉树
- 2.补全成完全二叉树,并标注存储的数值
- 3.形成数组
三、二叉树的链表存储
3.1 说明
- 1.每个二叉树的节点,拥有左子树和右子树,可以采取双向链表记录节点和左右子树节点的位置
- 2.用L指针指向左子树,用R指针指向右子树
- 3.根指针当做二叉树对的名称,二叉树A
3.2 图示
-
1.一个节点,^表示指向null
-
2.整个图示