树是一种数据结构,它是由n(n>=1)个有限节点组成一个具有层次关系的集合。把它叫做“树”是因为它看起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的。它具有以下的特点:每个节点有零个或多个子节点;没有父节点的节点称为根节点;每一个非根节点有且只有一个父节点;除了根节点外,每个子节点可以分为多个不相交的子树
二叉树是每个节点最多有两个子树的树结构。通常子树被称作“左子树”(left subtree)和“右子树”(right subtree)。二叉树常被用于实现二叉查找树和二叉堆。 二叉树的每个结点至多只有二棵子树(不存在度大于2的结点),二叉树的子树有左右之分,次序不能颠倒。二叉树的第i层至多有2{i-1}个结点;深度为k的二叉树至多有2k-1个结点;对任何一棵二叉树T,如果其终端结点数为n_0,度为2的结点数为n_2,则n_0=n_2+1。 一棵深度为k,且有2^k-1个节点称之为满二叉树;深度为k,有n个节点的二叉树,当且仅当其每一个节点都与深度为k的满二叉树中,序号为1至n的节点对应时,称之为完全二叉树
树(Tree)是n(n>=0)个结点的有限集。n=0时称为空树。在任意一棵非空树中:(1)有且仅有一个特定的称为根(root)的结点。
名词理解:
结点:指树中的一个元素;
结点的度:指结点拥有的子树的个数,二叉树的度不大于2;
数的度:指树中的最大结点度数;
叶子:度为0的结点,也称为终端结点;
高度:叶子节点的高度为1,根节点高度最高;
层:根在第一层,以此类推
重要基本概念
(1)节点node:树中的一个数据项及指向分支的指针项
(2)节点的度degree:节点的子树的数目,比如上图中节点4的度为2
(3)树的度degree:树的所有节点中度的最大值,比如上图中节点1的度最大,为3
(4)叶子节点:树中度为0的节点,比如上图中节点3、5、6、7
(5)非叶子节点:树中度不为0的节点,比如上图中1、2、4
(6)孩子节点和双亲节点:节点子树的根称为该节点的孩子节点,该节点称为孩子节点的父节点(或双亲节点parent),比如上图中节点2为节点5的父节点,结点5为节点2的孩子节点
(7)兄弟节点:对于相同父节点的所有孩子节点来说,互为兄弟节点,比如上图中2、3、4互为兄弟节点,且6、7互为兄弟节点
(8)层次:前面已经提到,树是一种层次结构,节点的层次是按照递归定义的。将树的根节点层次定义为1,除根节点以外所有的节点层次为其父节点层次加1。比如上图中节点4的层次为2,节点6的层次为3
(9)树的深度(depth):树所有节点的层次值的最大值,比如上图中树的层次值最大为3,即树的深度(或称为高度)为3
(10)堂兄弟节点:同一“层次”的所有节点称为堂兄弟节点,比如5、6、7节点
(11)层次路径:从根节点到某x节点所经过的所有节点,称为节点x的层次路径(有且仅有一条路径,绝不会存在两条不同路径)
(12)祖先:在某x节点的层次路径上的所有节点,称为x节点的祖先(不包括x本身)
(13)子孙节点:当某一节点视为根节点时,其所有子树上的节点,都称为该节点的子孙节点
(14)森林forest:多个互不相交的树构成的集合
树及二叉树的思维导图
原文:https://www.cnblogs.com/leeqq123/p/14721096.html