悟已往之不谏,知来者之可追

第六章、树和二叉树

树和二叉树

 一、基本术语:

  (1)节点:一个数据元素机器若干指向其子树的分支。

  (2)节点的度:节点所拥有的子树的颗树。

  (3)树的度:树中节点度的最大值。

二、二叉树:

  性质:对任意一棵二叉树,若其叶子节点数为n0,度为二的节点数为n2,则n0=n2+1;

  1、满二叉树:一颗深度为k且有2的k次方-1个节点的二叉树为满二叉树。

  2、完全二叉树:如果深度为k,由n个节点的二叉树,当且仅当其中每个节点都与深度为k的满二叉树中编号从1到n的节点相对应,该二叉树称为完全二叉树。

三、二叉树的存储结构:

  1、顺序存储:

    

#define Max 100
typedef telemtype sqbitree[Max];

 

   2、链式存储:

    (1)二叉链表:

        

typedef struct Bitnode{
    Elemtype data;
    struct Bitnode *Lchild,*Right;
}Bitnode;

 

四、二叉树的遍历:

  分为先序遍历、中序遍历、后序遍历。

  代码:

    待补充。

五、树和森林:

  1、孩子兄弟表示法:

    

六、哈夫曼树:

  1、含义:是一类带权路径长度最短的树,又称最优树。

 

posted @ 2018-04-13 18:35  monty1  阅读(156)  评论(0)    收藏  举报