【数据结构】树和二叉树1——树

文章目录

  • 树的定义
  • 树的表示方式
  • 树形结构的用途
  • 树的基本术语
  • 线性结构和树形结构的比较


线性结构:最多一个前驱,最多一个后继
树形结构:最多一个前驱,可以多个后继
图形结构:可以多个前驱,可以多个后继
【数据结构】树和二叉树1——树_第1张图片

树的定义

树(Tree)是n(n≥0)个结点的有限集。 若n=0,称为空树; 若n>0,则它满足如下两个条件: ① 有且仅有一个特定的称为根(Root)的结点; ② 其余结点可分为m(m≥0)个互不相交的有限集T1, T2, T3,…Tm,其中每一个集合本身又是一 棵树,并称为根的子树(SubTree)。

【数据结构】树和二叉树1——树_第2张图片

树的表示方式

① 倒悬树。使用一棵倒置的树表示树结构,非常直观和形象。
【数据结构】树和二叉树1——树_第3张图片

② 嵌套集合。使用集合以及集合的包含关系描述树结构
【数据结构】树和二叉树1——树_第4张图片
③ 广义表形式。括号表示法。用一个字符串表示树。
【数据结构】树和二叉树1——树_第5张图片
④ 凹入法表示形式。使用线段的伸缩关系描述树结构。
【数据结构】树和二叉树1——树_第6张图片

树形结构的用途

【数据结构】树和二叉树1——树_第7张图片

树的基本术语

  • 结点(node):一个数据元素及其若干指向其子树的分支。(含数据元素值及其逻辑关系信息)

  • 根结点:非空树中无前驱结点的结点。

  • 结点的度(degree) :结点拥有的子树数。

  • 树的度:树内各结点的度的最大值。(通常将度为m的树称为m次树或者m叉树。)
    【数据结构】树和二叉树1——树_第8张图片 - 叶子(left)结点:树中度为0的结点称为叶子结点(或终端结点)。

  • 分支结点:度不为0的结点称为分支结点(或非终端结点或非叶子结点),根结点也是分支节点。除根结点外,分支结点又称为内部结点。【数据结构】树和二叉树1——树_第9张图片

  • 孩子结点、双亲结点:一个结点的子树的根称为该结点的孩子结点(child)或子结点;相应地,该结点是其孩子结点的双亲结点(parent)或父结点。【数据结构】树和二叉树1——树_第10张图片

  • 结点的层次:树结构的元素之间有明显的层次关系,结点的层次从根开始定义,根结点的层次为1,其孩子结点的层次为2。【数据结构】树和二叉树1——树_第11张图片

  • 树的深度:树中叶子结点所在的最大层次,树的深度也称为高度。【数据结构】树和二叉树1——树_第12张图片

  • 兄弟结点:同一双亲结点的所有子结点互称为兄弟结点。

  • 堂兄弟结点:在同一层,但双亲不同的结点称堂兄弟结点。【数据结构】树和二叉树1——树_第13张图片

  • 祖先结点:从根结点到此结点所经分支上的所有结点都是该结点的祖先结点。【数据结构】树和二叉树1——树_第14张图片

  • 子孙结点:某一结点的孩子,以及这些孩子的孩子,直到叶结点,都是此结点的子孙结点。【数据结构】树和二叉树1——树_第15张图片

  • 路径(从根到结点的):从根到该结点所经分支和结点构成。【数据结构】树和二叉树1——树_第16张图片

  • 有序树、无序树:若树中各结点的子树是按照一定的次序从左向右安排的,且相对次序是不能随意变换的,则称为有序树(最左边为第一个孩子),否则称为无序树。【数据结构】树和二叉树1——树_第17张图片

  • 森林(forest):是m(m≥0)棵互不相交的树的集合。显然,若将一棵树的根结点删除,剩余的子树就构成了森林。一棵树可以看成是一个特殊的森林。给森林中的各子树加上一个双亲结点,森林就变成了树。树一定是森林,森林不一定是树。
    【数据结构】树和二叉树1——树_第18张图片

线性结构和树形结构的比较

【数据结构】树和二叉树1——树_第19张图片


你可能感兴趣的:(数据结构,数据结构,算法,c++,c语言)