【数据结构与算法】002—树与二叉树(Python)

概念

树是一类重要的非线性数据结构,是以分支关系定义的层次结构

定义:

树(tree)是n(n>0)个结点的有限集T,其中: 有且仅有一个特定的结点,称为树的根(root)

当n>1时,其余结点可分为m(m>0)个互不相交的有限集T1,T2,……Tm,其中每一个集合本身又是一棵树,称为根的子树(subtree)

特点: 树中至少有一个结点——根 树中各子树是互不相交的集合

基本术语

  • 结点(node)——表示树中的元素,包括数据项及若干指向其子树的分支

  • 结点的度(degree)——结点拥有的子树数 叶子(leaf)——度为0的结点

  • 孩子(child)——结点子树的根称为该结点的孩子

  • 双亲(parents)——孩子结点的上层结点叫该结点的~

  • 兄弟(sibling)——同一双亲的孩子

  • 树的度——一棵树中最大的结点度数

  • 结点的层次(level)——从根结点算起,根为第一层,它的孩子为第二层……

  • 深度(depth)——树中结点的最大层次数

  • 森林(forest)——m(m0)棵互不相交的树的集合



二叉树

二叉树的定义:二叉树是n(n>=0)个结点的有限集合,该集合或者为空集(称为空二叉树),或者由一个根结点和两棵互不相交的、分别称为根结点的左子树和右子树组成。(在某个阶段都是两种结果的情形)

二叉树的特点有:
每个结点最多有两颗子树,所以二叉树中不存在度大于2的结点。
左子树和右子树是有顺序的,次序不能任意颠倒。
即使树中某结点只有一棵子树,也要区分它是左子树还是右子树。

二叉树具有五种基本形态:

  • 空二叉树。
  • 只有一个根结点。
  • 根结点只有左子树。
  • 根结点只有右子树。
  • 根结点既有左子树又有右子树。

关键词:结点 子树 二叉树 二叉 根结 结构 集合 孩子 数据 称为

相关推荐:

二叉树的Python实现

Android版数据结构与算法(六):树与二叉树

数据结构笔记——二叉树的定义和性质

数据结构之二叉树与二叉搜索树