数据结构-树的基本概念

树

节点的后代均构成一棵子树,树是递归的思想!

基本术语:
结点:存储数据元素和指向子树的链接,由数据元素和构造数据元素之间关系的引用组成。
孩子结点:树中一个结点的子树的根结点称为这个结点的孩子结点,如图1中的A的孩子结点有B、C、D
双亲结点:树中某个结点有孩子结点(即该结点的度不为0),该结点称为它孩子结点的双亲结点,也叫前驱结点。
双亲结点和孩子结点是相互的,如图1中,A的孩子结点是B、C、D,B、C、D的双亲结点是A。
兄弟结点:具有相同双亲结点(即同一个前驱)的结点称为兄弟结点,如图1中B、B、D为兄弟结点。
叶子结点:度为0的结点称为叶子结点,也叫终端结点。如图1的K、L、F、G、M、I、J
分支结点:度不为0的结点称为分支结点,也叫非终端结点。如图1的A、B、C、D、E、H

易混淆概念:
结点的度:结点所有子树的个数称为该结点的度,如图1,A的度为3,B的度为2.叶子节点的度是0
树的度:树中所有结点的度的最大值称为树的度,如图1的度为3.
结点的深度:从根结点到树中某结点所经路径的分支数称为该结点的深度/层次。根结点的层次一般为1(也可以自己定义为0),这样,其它结点的层次是其双亲结点的层次加1.
树的深度:树中所有结点的层次的最大值称为该树的深度(也就是最下面那个结点的层次)。
路径: 从一个节点到另一个节点存在唯一的一条路径,从根节点到任一节点的路径是该节点的深度。
高度:对于任意节点n,n的高度为从n到一片树叶的最长路径长,所有树叶的高度为0

度:横向查看节点子节点的个数
深度:纵向查看根节点到该节点的路径长度

有序树和无序树:树中任意一个结点的各子树按从左到右是有序的,称为有序树,否则称为无序树。

二叉树:每个节点的度数均不超过2度的有序树。
真二叉树:不含1度节点的二叉树。即要么节点为2度,要么为叶子节点。
满二叉树:所以叶子的深度完全相同的二叉树。
这里写图片描述

注意:高度为h的满二叉树,含有这里写图片描述个叶子节点、这里写图片描述个节点

完全二叉树:在满二叉树的基础上,从右边起将相邻的若干叶子节点摘除。
这里写图片描述

猜你喜欢

转载自blog.csdn.net/fle123/article/details/80709845