数据结构-树

时间:2024-10-21 14:44:55

1. 分类

树分为二叉树多叉树

其中,二叉树(每个节点最多有两个子节点)有

  1. 完全二叉树  :数据从上到下,从左到右依次进行排列
  2. 满二叉树  : 所有的叶子结点都在一层,且最后一层节点数为2^(n-1)  n是层数
  3. 有序二叉树 :左边节点值小于当前节点,右边节点值大于当前节点
  4. 平衡二叉树 : 左边节点值小于当前节点,右边节点值大于当前节点                                                                左子树的高度和右子树的高度差的绝对值不超过1
  5. 红黑树  : 最优二叉树
  6. 哈夫曼树

多叉树有:B树B+树


2. 二叉树搜索

2.1 深度优先搜索

2.1.1 先序遍历

先访问父亲节点,再访问左孩子,再访问右孩子

eg:

上述树,先序遍历访问结果:

        A B D H E C F G

2.1.2 中序遍历

先访问左孩子,再访问父亲节点,再访问右孩子

eg:

上述树,中序遍历访问结果:

        H D B E A F C G

2.1.3 后序遍历

先访问左孩子,再访问右孩子,再访问父亲节点

eg:

上述树,后序遍历访问结果:

        H D E B F G C A

2.2 广度优先搜索

从上往下打印节点,同一层的节点从左往右打印

eg:

上述树,广度优先搜索访问结果:

        A B C D E F G H


3. 相关关键词

  1. 节点:树当中存数据的单元
  2. 根节点:一种没有父节点的节点  eg: A
  3. 父节点   一个节点的上级节点叫做它的父级节点  一个节点最多有一个父节点
  4. 子节点:一个节点的下级节点叫作它的子节点,一个节点可以有多个子节点
  5. 叶子节点:没有子节点的节点    eg:E F G H
  6. 节点的权 : 节点
  7. 路径:从根节点开始到该节点所走过的路线  路径长度是多少取决于该路径上边的条数
  8. 边:父子节点之间的连线叫边
  9. 子树:以某一个节点(非根节点)作为根节点的树称为子树
  10. 森林:多棵子树构成森林