什么是树

树是一种非线性数据结构,它是由n(n>=0)个有限结点组成的一个具有层次的关系集合。它有以下几个特点:

  • List item有一个特殊的节点,称为根节点,根节点没有前驱节点
  • 除根节点,其余节点被分成M(m>0)个互不相交的集合T1、T2、…、Tm,其中每一个集合Ti(1<=i<=m)又是一棵与树类似的子树。每颗子树的根节点有且只有一个前驱,可以有0个或多个后继。
  • 树是递归定义的。

树的常见概念

  1. 节点的度:一个节点含有的子树的个数称为该节点的度;上图B的度为3。
  2. 树的度:一棵树中,最大的节点的度称为树的度;上图树的度为3。
  3. 叶子结点或终端节点:度为0的节点称为叶子节点;上 图K,J,F,L,O,P。
  4. 双亲节点或父节点:若一个节点含有子节点,则这个节点称为其子节点的父节点;上图I是K的父节点
  5. 孩子节点或子节点:一个节点含有的子树的根节点称为该节点的子节点;上图K是I的子节点。
  6. 根节点:一棵树中没有双亲节点的节点;上图A
    节点的层次:从树的定义开始,根为第一层,根的子节点为第二层,以此类推。
  7. 树的高度或深度:树中节点的最大层次;上图的高度为5
    下面概念只需了解
  8. 非终端节点或分支节点:度不为0的节点(没有孩子的节点)。如上图E。
  9. 兄弟节点:具有相同父亲节点的节点互称为兄弟节点。如上图D,E,F。
  10. 堂兄弟节点:双亲在同一层的节点互为堂兄弟。如上图F和G
  11. 节点的祖先:从根到该节点所经分支上的所有节点。上图A是所有节点的祖先。
  12. 子孙:以某节点为根的子树中任一节点都称为该节点的子孙。
  13. 森林:有m(m>=0)棵互不相交的树的集合称为森林。

什么是二叉树

一棵二叉树是节点的一个有限集合,该集合或为空,或是由一个根节点加上两棵别称为左子树和右子树的二叉树组成。
二叉树的特点:

  1. 每个节点最多有两棵子树,即二叉树不存在度大于2的节点。
  2. 二叉树的子树有左右之分,其子树的次序不能颠倒,因此二叉树是有序树。

二叉树的性质

1.若规定根节点的层数为1,则一棵非空二叉树的第i层最多有2^(i - 1)个节点。
2. 若规定只有根节点的二叉树的深度为1,则深度为k的二叉树最大节点数是2^k - 1。
3. 对任何一棵二叉树,如果叶节点的个数为n0,度而2的非叶节点个数为n2,则有n0 = n2 + 1。
4. 具有n个节点的完全二叉树的深度是log2(n + 1)向上取整。
5. 对于具有n个节点的完全二叉树,如果按照从上至下从左至右的顺序对所有节点从0开始编号,则对于序号为i的节点有:

若i > 0,双亲序号:(i-1)/2;若i - 0,则i为根节点编号,无双亲节点。
若2i+1 < n,左孩子序号:2i + 1,否则无左孩子
若2i+2 < n,右孩子序号:2i + 2,否则无右孩子

关于二叉树的遍历问题可以看这篇博客用Java描述数据结构之二叉树,前序遍历,中序遍历,后序遍历

树的常见概念,二叉树的性质相关推荐

  1. 二叉树Ⅰ · 树型结构 · 二叉树 · 满二叉树 · 完全二叉树 · 二叉树的性质 · 二叉树的存储

    目录 一.树型结构(了解) 1.1 引入和特点 1.2 概念(重要) 1.3 树的表示形式(了解) 二.二叉树(重点) 2.1 概念 2.2 二叉树的基本形态 2.3 两种特殊的二叉树 满二叉树 完全 ...

  2. 再谈二叉树(二叉树概念,二叉树的性质,二叉树的存储结构)

    树的概念 树的概念 树是一种非线性的数据结构,它是由n(n>=0)个有限结点组成一个具有层次关系的集合.把它叫做树是因 为它看起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的.它具有以下的特点 ...

  3. 树的基本概念以及java实现二叉树(二)

    前言 本文是我在学习了树后作的总结文章,接上篇文章,本节大致可以总结为: 二叉树的遍历与实现(递归和非递归) 获取二叉树的高度和度 创建一棵二叉树 其他应用(层序遍历,复制二叉树,判断二叉树是否相等) ...

  4. 树的基本概念以及java实现二叉树(一)

    前言 作为一个程序员,要了解最基本的数据结构的.本文是我在学习了树后作的总结文章,本节大致可以总结为: 什么是树 树的基本性质(专有名词) 什么是二叉树 二叉树的基本性质 二叉树的存储结构 文章传送门 ...

  5. 树的基本概念和二叉树的遍历

    树和二叉树的遍历 一.树的定义与存储 1. 树的定义 在计算机科学中,树是一种非线性结构,存储的是具有"一对多"关系的数据元素的集合:(是不是像一个家族关系表) 2. 树的基本术语 ...

  6. 二叉树的性质与推导及常见习题整理

    目录 一.性质推导 二.常见的二叉树性质习题 1. 某二叉树共有 399 个结点,其中有 199 个度为 2 的结点,则该二叉树中的叶子结点数为(). 2.在具有 2n 个结点的完全二叉树中,叶子结点 ...

  7. 树的基本概念和2叉树中重要的几个性质

    1.树的基本概念 : 其中节点的度,叶节点,节点的层次 ,树的度,树的高度,节点的祖先是重点概念,我们要重点掌握以后会经常用到. 2.树的性质: 设树有n个节点,则树有n-1条边,设该树的节点的度为n ...

  8. 树的基本概念和遍历规则 数据结构和算法 二叉树遍历(前序、中序、后序、层次、深度优先、广度优先遍历)

    zsychanpin 博客园 首页 新随笔 联系 订阅 管理 树的基本概念和遍历规则 树的递归定义 树是n(n>0)个结点的有限集,这个集合满足下面条件:       ⑴有且仅有一个结点没有前驱 ...

  9. 树的基本概念(定义、基本术语、性质)

    树的基本概念 树的定义 树的特点 基本术语 树的性质 树的定义 树是n(n >=0)个节点的有限集.n = 0时,为空树. 任意一棵非空树应满足: ①.有且仅有一个特定的成为根的结点. ②.当n ...

最新文章

  1. python可以干什么-Python可以用来做什么 为你揭开python神秘面纱
  2. 数据库开发基本操作-数据库基础知识
  3. GDI+ 中发生一般性错误
  4. boost::ratio_power相关的测试程序
  5. leader选举的源码分析-quorumPeer.createElectionAlgorithm
  6. No compiler is provided in this environment. Perhaps you are running on a JRE rather than a JDK?
  7. 教你轻松搞定javascript中的正则
  8. mysql之调优概论 1
  9. 可用于神经网络的一些matlab函数
  10. Arduino使用火焰传感器
  11. 关于软件产品化的几点思考【转】
  12. ../和./和/的区别
  13. 教师空间HTML没有怎么查找,人人通空间为什么看不到老师发的作业?
  14. XCP协议和A2L文件–A2L(ASAP2)解析
  15. vscode在html看到图片的插件_利用花瓣插件 下载高清大图
  16. 关于jason中大括号和中括号的区别
  17. matlab tstart,ttbox25102012 一款利用matlab编写的射线追踪程序,易改易用。 238万源代码下载- www.pudn.com...
  18. 刘邦韩信java_刘邦为什么叫韩信雏儿 刘邦杀韩信后悔了吗
  19. 手把手教您搭建 AWS 大数据云平台
  20. 从《战狼2》到Oracle数据库,这中间有几个云的距离?

热门文章

  1. python爬虫:读取PDF
  2. Android之AsyncTask学习笔记
  3. CSS中加号、星号及其他符号的作用
  4. PVFS2 1.4.0的安装、配置与性能测试
  5. HTML5 文本元素
  6. CSS基础「一」基础选择器 / 字体属性 / 文本属性 / 三种样式表
  7. Ubuntu16.04安装Caffe(CPU Only)
  8. c++: size_type与 size_t一些概念
  9. Git Specification
  10. android:autolink 颜色,Android设置完autoLink属性后自定义跳转到指定界面