树(二叉树、红黑树及左旋右旋等调整操作)

在分析Java集合类源码的时候涉及到了树的知识,发现树结构要比数组和链表等要复杂的多,所以巩固和补充一下自己这块的知识。

树(Tree)可以有几种定义。其中一种方式是递归方式。

树(Tree)是n(n≥0)个结点的有限集T,T为空时称为空树,否则它满足如下两个条件:

有且仅有一个特定的称为根(Root)的结点;其余的结点可分为m(m≥0)个互不相交的子集Tl,T2,…,服务器空间,Tm,其中每个子集本身又是一棵树,香港服务器租用,并称其为根的子树(SubTree)。

从定义中可以看出一棵树是N个节点和N-1条边的结合,美国空间,其中一个节点叫做根。存在N-1条边是这样得出的:每条边都将某个节点连接到它的父亲,而除去根节点外,每个节点都有一个父亲。

一些树相关的基础定义:

二叉树

二叉树是一棵树,其中每个节点都不能有多余两个儿子。

树节点可以像如下实现:

1 class Node{2Object element;// 存储数据3Node left;// 左孩子4Node right;// 右孩子5 }以诚感人者,人亦诚而应。

树(二叉树、红黑树及左旋右旋等调整操作)

相关文章:

你感兴趣的文章:

标签云: