赞
踩
一棵二叉树是结点的一个有限集合,该集合:
从上图可以看出:
3. 二叉树不存在度大于2的结点
4. 二叉树的子树有左右之分,次序不能颠倒,因此二叉树是有序树
注意:对于任意的二叉树都是由以下几种情况复合而成的:
(其中左子树和右子树复杂程度是可以不一样的)
二叉树一般可以使用两种结构存储,一种是顺序结构,另一种是链式结构。
顺序结构存储就是使用数组来存储,一般使用数组只适合表示完全二叉树,因为非完全二叉树会有空间的浪费。而现实使用中只有堆才会使用数组来存储,关于堆我们会在后面进行专门讲解。一定要记住二叉树顺序存储在物理上是一个数组,在逻辑上是一颗二叉树。
既然二叉树顺序存储在物理上是一个数组,在逻辑上是一颗二叉树,那物理和逻辑上是怎样联系起来的呢?通过下面这张图我们进行分析。
首先,二叉树的一个特点是可以通过父节点快速找到左右孩子结点,图中A结点(下标为0)的左孩子为B结点(下标为1)、右孩子为C结点(下表为2),发现A结点的下标乘2加1为左孩子的下标,A结点的下标乘2加2为右孩子的下标,其它父节点和左右孩子结点的下标也存在这个关系。其次,二叉树的另一个特点是每一个结点都只有一个指针指向它,从根节点到任意一个结点的路径唯一,这个特点我们可以从上面二叉树顺序存储的物理结构一图中看出来。
所以二叉树顺序存储在物理和逻辑上就联系起来了。
二叉树的链式存储结构是指,用链表来表示一棵二叉树,即用链来指示元素的逻辑关系。 通常的方法是链表中每个结点由三个域组成,数据域和左右指针域,左右指针分别用来给出该结点左孩子和右孩子所在的链结点的存储地址 。
以上就是二叉树的相关基础知识,虽然只是基础知识,但在后续的知识讲解中会经常被用到,所以不容忽视。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。