数据结构—树与二叉树(概念及二叉树的前序,中序,后序遍历的代码实现)

本文详细介绍了树的定义、基本术语,特别是二叉树的概念、五种基本形态、性质以及两种特殊形式——满二叉树和完全二叉树。此外,还探讨了二叉树的链式储存结构和顺序储存结构,并提供了二叉树前序、中序、后序遍历的代码实现。
摘要由CSDN通过智能技术生成

目录

 

序章

 树

树的定义

树的基本术语

线性结构与树结构比较

二叉树

二叉树的定义

二叉树的五种基本形态

二叉树的性质 

两种特殊形式的二叉树

满二叉树

完全二叉树

完全二叉树性质(接上面的性质)

二叉树的储存结构

顺序储存结构 

二叉树的链式储存结构

二叉树的遍历

创建二叉树


序章

先来了解一下树形结构的特点

 树

树的定义

 定义:树是n(n>=0)个结点的有限集。

当n==0时,成为空树;

当n>0时 , 如果有且只有一个结点,则称为根(root)结点。否则其余结点可分为m(m>=0)个互不相交的有限集T1,T2....Tn,其中每一个集合本身又是一棵树,并称为树的子树

 就像这棵树,1就是她的根,而2(4,5),3,6则是她的子树。

树的基本术语

 

接下来我们通过一棵树来加深一下各个术语的含义;

从整张图里分析一下:A的结点的度为3,因为他有B,C,D所组成的子树。

由此可推B(2),C(1),D(3),E(2),F(0),G(0),H(1),I(0),J(0),k(0),L(0),M(0)。

所以树的度为3,因为树内各节点度的最大值就是3。

不难发现,分支结点就是 度!=0 的结点,叶子就是 度 == 0 的结点。

这里补充一点,

有序树:树中结点的各子树从左至右有次序。

无序树:没有次序。

森林:是m(M>=0)棵互不相交的树的集合。(树可以是森林但是森林不一定是树)

线性结构与树结构比较

线性结构 树结构
第一个数据元素(无前驱) 根节点(无双亲)
最后一个数据元素(无后继) 叶子结点(无孩子)
其他数据元素(一前驱一后继) 其他结点-中间结点(一双亲,多孩子)
一对一 多对多

二叉树

二叉树的定义

二叉树是n(n>=0)个结点的有限集,她或者是空集(n==0),或者由一个根节点及两棵互不相交的分别称作这个根的左子树右子树的二叉树组成。

特点:

1.二叉树中的结点的度<=2.

2.子树有左右之分,其次序不能颠倒。

3.二叉树可以是空集。

二叉树的五种基本形态

二叉树的性质 

性质1:在二叉树的第 i 层上至多有2^(i-1)个结点(i>=1).

这个性质很好想,因为二叉树最多就2个分支,所以每层是以2为底的指数型增长。

性质2:深度为 k 的二叉树至多有2^k-1个结点(k>=1)。

就是把每层的结点的加上,所以就成了\sum_{i=1}^{k} 2^{i-1},所以就成了等比求和,S = \frac{a(1)-a(n)*q}{1-q}或者\frac{a(1)*(1-q^{n})}{1-q}

性质3:对任何一棵二叉树T,如果其叶子数为n(0),度为2的结点为n(2),则n(0) = n(2) + 1。

这个有些难想,我们可以简单的推理一下,度为2的

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值