1、什么是树
在数据结构中,树的定义如下:
树(tree)是 n(n≥0)个节点的有限集,当n=0时,称为空树,在任意一个非 空树中,有如下特点:
- 有且仅有一个特定的称为根的节点;
- 当n>1时,其余节点可分为m(m>0)个互不相交的有限集,每一个集合本身又是一个树,并称为根的子树
下面这张图,就是一个标准的树结构:
在上图中,节点1是根节点(root);节点5、6、7、8是树的末端,没有孩子,被称为叶子节点(leaf);图中的虚线部分,是根节点1的其中一个子树,同时,树的结构从根节点到叶子节点,分为不同的层级;从一个节点的角度来看,它的上下级和同级节点关系如下:
在上图中,节点4的上一级节点,是节点4的父节点(parent);从节点4衍生出 来的节点,是节点4的孩子节点(child);和节点4同级,由同一个父节点衍生出来 的节点,是节点4的兄弟节点(sibling);树的最大层级数,被称为树的高度或深度。【上图这个树的高度是4】
2、什么是二叉树
二叉树(binary tree)是树的一种特殊形式;顾名思义,这种树的每 个节点最多有2个孩子节点【这里是最多有2个,也可能只有1个,或者没有孩子节点】二叉树的结构如图所示: