数据结构-4-[树]

319 阅读2分钟

这是我参与8月更文挑战的第9天,活动详情查看:8月更文挑战

1. 基本概念

树(tree)  是n(n>=0)个结点的有限集。n=0时称为空树。在任何一棵非空树中:1. 有且只有一个特定的称为 根(root)  的结点;2. 当n>1时,其余结点可分为m(m>0)个 互不相交 的有限集,其中每一个集合又是一棵树,并且成为 根的子树(subtree)

  • 树是一种一对多的结构。
  • (Degree):结点拥有的子树数被称为结点的度
  • 树的度:是树中各个结点度的最大值。
  • 叶节点(Leaf):度为0的结点称为叶节点或终端结点,
  • 分支结点:度不为0的结点称为分支结点。
  • 结点的层次(Level)从根开始定义起,根为第一层,根的孩子为第二层。
  • 树的深度(Depth):树中结点的最大层次。

2. 二叉搜索树

  • 二叉搜索树(Binary Search Tree),
    • 也称有序二叉树(ordered binary tree)排序二叉树(sorted binary tree)
    • 是指一棵空树或者具有下列列性质的二叉树:
        1. 若任意节点的左⼦子树不不空,则左子树上所有结点的值均小于它的根结点的值;
        1. 若任意节点的右⼦子树不不空,则右子树上所有结点的值均大于它的根结点的值;
        1. 任意节点的左、右⼦子树也分别为二叉查找树。

public class TreeNode {
    public int value;
    public TreeNode left, right;
    public TreeNode(int value) {
        this.value = value;
        this.left = null;
        this.right = null;
    }
}

3. B树、B+树

  • B-树,即为B树。因为B树的原英文名称为B-tree, B的含义为平衡Balance
  • B+树是应文件系统所需而产生的B树的变形树

3.1 B+树的特征

  • 有m个子树的中间节点包含有m个元素(B树中是k-1个元素),每个元素不保存数据,只用来索引
  • 所有的叶子结点中包含了全部关键字的信息,及指向含有这些关键字记录的指针,且叶子结点本身依关键字的大小自小而大的顺序链接。 
    • 而B 树的叶子节点并没有包括全部需要查找的信息
  • 所有的非终端结点可以看成是索引部分,结点中仅含有其子树根结点中最大(或最小)关键字。
    • 而B 树的非终节点也包含需要查找的有效信息

未完待续...

附图

image.png

image.png

image.png

参考地址