树和二叉树
一、基本术语:
(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、含义:是一类带权路径长度最短的树,又称最优树。