数据结构:树

1、什么是树?

在计算机科学中,(英语:tree)是一种抽象数据类型,用来模拟具有树状结构性质的数据集合。它是由n(n>0)个有限节点组成一个具有层次关系的集合。

2、树的相关术语

  • 节点的度:一个节点含有的子树的个数称为该节点的度;
  • 树的度:一棵树中,最大的节点的度称为树的度;
  • 叶节点或终端节点:度为 0 的节点;
  • 非终端节点或分支节点:度不为 0 的节点;
  • 父亲节点或父节点:若一个节点含有子节点,则这个节点称为其子节点的父节点;
  • 孩子节点或子节点:一个节点含有的子树的根节点称为该节点的子节点;
  • 兄弟节点:具有相同父节点的节点互称为兄弟节点;
  • 节点的层次:从根开始定义起,根为第1层,根的子节点为第2层,以此类推;
  • 深度:对于任意节点n, n的深度为从根到n的唯一路径长,根的深度为 0;
  • 高度:对于任意节点n, n的高度为从n到一片树叶的最长路径长,所有树叶的高度为 0
  • 堂兄弟节点:父节点在同一层的节点互为堂兄弟;
  • 节点的祖先:从根到该节点所经分支上的所有节点;
  • 子孙:以某节点为根的子树中任一节点都称为该节点的子孙。
  • 森林:由 m(m>=0)棵互不相交的树的集合称为森林;

3、树有哪些特点?

  • 每个节点有零个或多个子节点
  • 没有父节点的节点称为根节点;
  • 每一个非根节点有且只有一个父节点;
  • 除了根节点外,每个子节点可以分为多个不相交的子树;

4、树的高度和深度?

  • 树的高度是根节点到叶子节点(树末端)的最大长度
  • 结点的深度是它到根结点的长度

5、举例说明

图一 树.PNG

在图一中:

  • A是根节点,A没有父节点。
  • B是E和F的父节点,同时E和F是B的子节点; B也是A的子节点, 而A是B的父节点。
  • A和D有三个子节点,节点的度对应2 , B和E有两个子节点,节点的度对应2,C和H有1个子节点,节点的度对应1,K、L、F、G、J和M没有子节点,节点的度对应0。
  • 节点的度为0的节点为叶子节点,所以K、L、F、G、J和M 是叶子节点。
  • 节点的最大度为3,所以该树的度为3。
  • H、I、J的父节点都是D,所以H、I和J是兄弟节点,同理B、C和D也是兄弟节点。
  • E和F的父结点是B,在第二层,H、I和J的父结点是D也在第二层,所以E、F和H、I、J为堂兄弟节点。
  • A是其他所有节点的祖先; B也是E、F、K和L的祖先。
  • 因为B->E->K的路径长度为3,B节点的高度为 3。
  • 因为A-> C -> G的路径长度为3,所以G的深度为3。
  • 因为A->B->E->K的路径长度为4,所以树的高度为4。
  • 树的高度和深度是一样的,树的深度也是4。

你可能感兴趣的:(数据结构:树)