二叉树、树和森林(java版)

什么是树

树是n个结点的有限集合(n>=0);
树只有一个根节点(root);
n>1时除了root外每个集合都是子树;

术语

结点:包括一个数据和指向若干结点的分支。
结点的度:结点拥有子树的个数(为0则是叶子结点)。
树的度:树中的最大度的结点的度数。
孩子:结点子树的根。
双亲:结点A的子树的根是孩子,这个结点A就是孩子是双亲。
兄弟:一个双亲的不同孩子互称兄弟。
深度:结点最大的层次。(根为第一层)
有序树:某结点的不同孩子的左右顺序不能变换。
无序树:某结点的不同孩子的左右顺序可以变换。
森林:m棵互不相交的树的集合。

二叉树:

概念:

  • 每个结点最多有两个子树
  • 这两个子树左右不可互换

形态(五种):

空树、只有根、根+左孩子、根+右孩子、根+左右孩子

满二叉树:

只有度为0和度为2的结点,而且每一层的叶子都是满的

完全二叉树:

只有度为0和度为2的结点。

性质:

1、第i层最多有2的i-1次方个结点;
2、深度为k的二叉树最多有2的k次方减1个结点;
3、叶子有n0个、度为2的结点有n2个,那么n0=n2+1;

2*n2+n1+1=n
n2+n1+n0=n

4、n个结点的完全二叉树的深度为 logn2(+1
i>1,n(i)的双亲为i/2(取下整数)
2i>n,没左孩子,2i+1>n,没右孩子
2i<=n,左孩子为2i,2i>n,右孩子为2i+1

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值