1.二叉树的定义(个人观点)
二叉树的定义简单可以比喻为一个父亲/母亲(根)最多只能有2个孩子(节点),况且这两个孩子也有性别之分——男孩子(左节点)和女孩子(右节点)。当然二叉树是一个递归的定义。
2.二叉树的存储
<1.顺序存储
按照从上层到下层,每层从左到右来进行存储。
<2.链式存储
利用一个指针指着节点,然后再用另外两个指针指着该节点的左右子节点进行存储。然后再用递归的方式进行存储完成后续存储
3.二叉树的遍历
<1.先续编历:A B D E H C F I G
按照逆时针方向取——根与节点与他们的连线看做围墙来走,走到那个点就取那个的数,重复走到相同点着不取。
<2.中序遍历:D B H E A F I C G
按照根放在中间、左节点放在左边、右节点放在右边的递归排序。
<3.后序遍历:D H E B I F G C A
最开始走到左枝低按左节点>右节点>根。然后按向上取根点后,若该右节点有子节点后递归该步骤。
<4.层序遍历:A B C D E F G H I
按从上到下的层数,同层从左到右排序
4.堆的概念
<1.小根堆
按照顺序存储的顺序放在一个一维数组中,且该数组是以从大到小的顺序进行排列。
<2.大根堆
按照顺序存储的顺序放在一个一维数组中,且该数组是以从小到大的顺序进行排列。