传智数据结构——二叉树

参考本文http://blog.51cto.com/9291927/2068745

1、树的简介

树是一种非线性的数据结构,是由n(n >=0)个结点组成的有限集合。
如果n==0,树为空树。
如果n>0,
树有一个特定的结点,根结点
根结点只有直接后继,没有直接前驱。
除根结点以外的其他结点划分为m(m>=0)个互不相交的有限集合,T0,T1,T2,...,Tm-1,每个结合是一棵树,称为根结点的子树。
树的示例如下:

 

2、树的度

树的结点包含一个数据和多个指向子树的分支
结点拥有的子树的数量为结点的度,度为0的结点是叶结点,度不为0的结点为分支结点,树的度定义为树的所有结点中度的最大值。

3、树中结点的层次

树中根结点为第1层,根结点的孩子为第2层,依次类推。
树中结点的最大层次称为树的深度或高度

4、二叉树

a.二叉树的性质

性质1:二叉树第i层上的结点数目最多为 2{i-1} (i≥1)。
性质2:深度为k的二叉树至多有2{k}-1个结点(k≥1)。
性质3:包含n个结点的二叉树的高度至少为log2 (n+1)
性质4:在任意一棵二叉树中,若终端结点的个数为n0,度为2的结点数为n2,则n0=n2+1

b.满二叉树

特点:每层都充满了节点

c.完全二叉树

 

特点:k-1层与满二叉树完全相同,第k层节点尽力靠左。

 

 

 

首先创建树节点,因为树可能有左子点,右子点,所有在树节点中要包含这两个结构。

//创造节点数数据,将节点相连接

 

树的遍历

树的遍历分为三种:

a.DLR——先序遍历,既先根在左在右。

b.LDR——中序遍历,既先左在根在右。

c.LRD——后序遍历,既先左在右在根。

 

下图为先序遍历,调整输出位置,可实现LDR.LRD

 

计算叶节点的数目

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值