树结构

来源:互联网 发布:软文 知乎 编辑:程序博客网 时间:2024/06/05 18:05

什么是树结构

树结构是一种描述非线性层次关系的数据结构。

在一个树结构中,有且仅有一个结点没有直接前驱,这个结点就是树的结点。除根结点外,其余每个结点有且仅有一个直接前驱。每个结点可以有任意多个直接后继。

树的基本概念

  • 父节点和子节点

  • 兄弟节点

  • 结点的度

  • 树的度

  • 叶节点

  • 分支结点

  • 结点的层数

  • 树的深度

  • 有序数

  • 无序树

  • 森林: N棵互不相交的树的集合。

二叉树

每个结点最多只能有两个子节点。二叉树的子树仍然是二叉树。

二叉树有左子树和右子数之分。

满二叉树即在二叉树中除最下层的叶节点外,每层的结点都有两个子节点。

完全二叉树即在二叉树中除二叉树最后一层外,其他各层的结点数都达到最大个数,且最後一层叶节点按照从左向右的顺序连续存在,只缺最后一层右侧若干结点。

完全二叉树的特性

顺序存储 若树中包含N个结点,对于任意一个结点m来说,

  • 如果m!=1,则结点m的父结点的编号为m/2;
  • 如果2*m<=n,则结点m的左子树根结点的编号为2*m;若2*m>n,则无左子树,也没有右子树。
  • 如果2*m+1<=n,则结点m的右子树根结点编号为2*m+1;若2*m+1>n,则无右子数。
  • 对于完全二叉树来说,其深度为[log2n]+1。
原创粉丝点击