本文目的主要是对于树的这个数据结构的一些概念进行一个回顾,防止在使用的过程中出现一头雾水的情况
树的概念
对于大量的输入数据,链表的线性访问时间可能会到O(n)的时间复杂度上,因此在大量数据的场景下,链表的数据结构就不太实用。而今天总结的树的结构可以在大量的数据的情况下实现O(logN)的平均水平(对于最坏的情况下需要特别要考虑如使用二叉查找树的结构)。
基本定义
一棵树是一些节点的集合,这个集合可以是空集;若不是空集则树由根(root)的节点r以及0个或者多个飞空的(子)树T1 … Tk组成;这些子树种每一颗的根都被来自根节点r的一条有向表所连结;基本的结构如下
如上图所示:A是根
;节点F有一个父亲A 并且有儿子K,L,M 每个节点可以有任意多个儿子,也可能有零个儿子。没有儿子的节点称为树叶
如N ,M ,L 这些节点;具有相同父亲的接地那称为兄弟,如K,L,M;同样可以定义祖父接地那和孙子节点
从节点到节点之间深度就为两个节点路径
的长;从根节点到任何一个节点都有唯一的一条路径
树的实现
我们通过树的概念可以看到,实现树的一个结构的话,除了节点数据还有有一个链的结构ÿ