树形结构之二叉树基础(一)

在此之前学习的数据结构都属于线性结构,线性结构的特点是逻辑结构简单,易于进行查找,插入和删除的操作,其主要用于对客观世界中具有单一的前驱和后继的数据关系进行描述,而现实生活中的许多事物的关系并非这样简单,如人类社会的族谱,各种社会组织机构以及城市交通、通讯等,采用非线性结构进行描绘会更明确和便利。

所谓非线性结构是指,在该结构中至少存在一个数据元素,有两个或两个以上的直接前驱(或直接后继元素)树形结构和图形结构就是其中十分重要的非线性结构,可以用来描述客观世界中广泛存在的层次结构和网状结构的关系,如前面提到的族谱、城市交通等。在树的应用中最常见的就是二叉树。下面结合理解浅谈一下二叉树的相关知识。

1、二叉树的定义与性质

1、二叉树的基本概念

1.1二叉树

在学习之前首先要明确什么是二叉树,二叉树(Binary Tree)是有限个元素的集合,该集合或者为空、或者由一个称为根(root)的元素以及两个不相交的、分别称为做左子树和右子树的二叉树组成。当集合为空时,称为该二叉树二空二叉树,在二叉树中,一个元素与也称作一个结点。
二叉树时有序的,即若将其左右子树颠倒得到的就是一颗不一样的树。

1.2二叉树的相关概念

这里的相关概念会在以后编程亦或是考试都经常用到的,希望加强记忆!

1)、结点的度:节点所拥有的字数的个数称为该结点的度。

2)、叶结点:度为零的结点称为叶节点,在图中表示为最底层的结点。

3)、分支结点:度不为零的结点称为分支结点,或者称为非终端结点。一棵树的结点除了叶子结点外,其余的都是分支结点。

4)、左孩子、右孩子、双亲、兄弟、树的一个结点的子树的根结点成为这个结点的孩子。在二叉树中,左子树的根称为左孩子,右子树的根称为右孩子。这个结点称为它孩子的双亲。具有同一个双亲的孩子结点互称为兄弟。

5)路径、路径长度:如果一棵树的一串结点N1,N2,N3,...Nk有如下关系:结点ni是ni+1的父结点,就n1,n2...nk称为一条由n1至nk的路径。这条路径的长度就是k-1。 6)结点的层数:规定树的跟结点的层数为1,其余结点的层数等于它的双亲结点的层数加一。

7)输的深度:树中所有结点的最大层数称为树的深度。

8) 树的度:树中各结点的最大值称为该树的度。

9)满二叉树:在一棵二叉树中,如果所有的分支结点都存在于左子树和右子树,并且所有的叶子结点都在同一层上,这样的一颗二叉树称作满二叉树。

10)完全二叉树:一颗深度为k的有n个几点的二叉树,对树中的结点按从上至下、从左到右的顺序进行编号,如果编号为i(1<=i<=n)的结点与满二叉树中编号为i的结点位置相同,则这棵二叉树称为完全二叉树。

特点:叶子结点只能出现在最下层和次最下层,且最下层的叶子结点集中在树的左部。

1.3二叉树的主要性质

性质一:一棵非空二叉树的第i层上最多有2^i-1个结点(i>=1)
性质二:一颗深度为k的二叉树中,最多具有2^k-1个结点
性质三:对于一棵非空的二叉树,如果叶子结点数为n0,度数为2的结点为n2,则有 n0=n+2。
性质四:具有n个结点的完全二叉树的深度为k为|log2^n|+1。
性质五:对由具有n个结点的完全二叉树,如果按照从上至下和从左到右的顺序对二叉树中的所有结点从1开始顺序编号,则对于任意序号为i的结点,有:
(1)如果i>1,则序号为i的结点的双亲结点的序号为i/2(/表示整除),如果i=1,则为根结点,无双亲结点。
(2)如果2i<=n,则序号为i的结点的右孩子结点的序号为2i+1;如果2i+1>n,则序号为i的结点无右孩子。
(3)如果2i<=n,则序号为i的结点的右孩子结点的序号为2i+1;如果2i+1>n,则序号为i的结点无右孩子。
  如果若对二叉树的根结点从0开始编号,则相应的i号结点的双亲结点的编号的双亲结点的编号为(i-1)/2,左孩子的编号为2i+1,右孩子的编号为2i+2。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值