阿鑫来了  

 树的概念

树是一种非线性的数据结构,它是由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 . 完全二叉树 : 除了最后一层 , 每一层都是满的 ; 最后一层不满 , 但从左往右连续 , 中间没有间隔 .满二叉树是一种特殊的完全二叉树 .

 

 

posted on 2021-04-12 22:22  阿鑫来了  阅读(193)  评论(0)    收藏  举报