二叉树介绍

定义:二叉树是n个节点的有限集,或者可以是空集(n=0),或者由一个根节点以及两颗互不相交的分别称作这个跟的左子树和右子树构成
特点:
1.每个节点最多有两个孩子
2.子树有左右之分且次序不能颠倒
3.二叉树可以是空集,根可以有空的左子树或空的右子树
注意:二叉树不是树的特殊情况,它们是两个概念
二叉树的性质:
1.在二叉树的第i层上最多有2^i-1个节点
2.深度为k的二叉树至多有2^k -1 个节点
3.对任何一个二叉树T,如果其叶子数为n0,度为2的节点数为n2,则n0=n2+1.
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

二叉树的存储结构

1.顺序存储结构
完全二叉树:用一组地址连续的存储单元依次自上而下、自左而右存储节点元素,即将编号为i的节点元素存储在一维数组中下标为i-1的分量中
在这里插入图片描述
一般二叉树:将其每个结点与完全二叉树上的结点相对照,存储在一维数组的相应分量中
在这里插入图片描述
最坏情况:深度为k的且只有k个结点的右单支树需要长度为2^k-1的一维数组
在这里插入图片描述
2.链式存储结构

typedef struct BiTNode{
	char data;
	struct BiTNode *lchild,*rchild;
}BiTNode,*BiTree;
posted @ 2019-12-04 21:53  鱼皮  阅读(12)  评论(0)    收藏  举报