树的概念
树是一种非线性的数据结构,它是由n(n>=0)个有限结点组成一个具有层次关系的集合.
把它叫做树是因为它看起来像一颗倒挂的数,根朝上,叶朝下.
树的特点
1.子树是不相交的;
2.除了根结点外,每个结点有且仅有一个父结点;
3.一颗N个结点的树有N-1条边.

节点的度 : 一个节点含有的子树的个数称为该节点的度 ; 如图 : A 的为6
叶节点或终端节点 : 度为 0 的节点称为叶节点 ; 如上图 : B,C,H,I.....节点为叶节点
非终端结点或分支节点 : 度不为 0 的节点 ; 如上图 : D,E,F,G..... 节点为分支节点
父节点或双亲节点 : 若一个节点含有字节点,则这个节点称为其子节点的父节点 ; 如图 : A是
B C,D,E,F,G的父节点.
子节点 : 一个节点含有的子数的根节点称为该节点的子节点 ; 如图 : B 是 A 的子节点.
兄弟节点 : 具有相同父节点的节点互称为兄弟节点 ; 如图 : B,C是兄弟节点.
树的度 : 一棵树中,最大的节点的度称为树的度 ;
节点的层次 : 从根开始定义起,根为第一层,根的子节点为第二层,以此类推 ;
树的高度或深度 : 树中节点的最大层次 ; 如上图 : 树的高度为4;
堂兄弟节点 : 父节点在同一层的节点互为堂兄弟 ; 如图 : H,I互为堂兄弟节点;
森林 : 由m (m>0) 棵互不相交的树的集合称为森林 .
树的表示:
最常用的是孩子兄弟表示法.
typedef int DataType; struct Node{ struct Node* _firstChild1; struct Node* _pNextBrother; DataType _data; };
二叉树的概念 :
一棵二叉树是节点的一个有限集合,该集合或者为空,或者是由一个根节点加上两棵别称为左子树和右子树的二叉树组成.
二叉树的特点 :
1 . 每个节点最多有两棵子树 , 即二叉树不存在度大于 2 的节点;
2 . 二叉树的子树有左右之分,其子树的次序不能颠倒.
特殊的二叉树 :
1 . 满二叉树 : 一个二叉树 , 如果每一个层的结点数都达到最大值 , 则这个二叉树就是满二叉树 . 也就是说 , 如果一个二叉树的层数为 K , 且节点总数是 (2^K)-1 , 则它就是满二叉树 .
2 . 完全二叉树 : 除了最后一层 , 每一层都是满的 ; 最后一层不满 , 但从左往右连续 , 中间没有间隔 .满二叉树是一种特殊的完全二叉树 .


浙公网安备 33010602011771号