树:1对n的关系
树的结点:包含一个数据元素及若干指向其子树的分支。
结点的度:结点拥有的子树。
叶子,终端结点:度为0
分支结点,非终端结点:度不是0;
内部结点:除根结点的非终端结点
树的度:树内各结点的度的最大值
结点的祖先:从根结点到该结点所有分支上的所有结点
子孙:以某结点为根的子树中的任意一个结点
结点的层次:从根开始,根是第一层,根的孩子是第二层。。。。。。
有序树:各子树看成从左到右有次序
二叉树:每个结点最多两个子树,子树有左右之分次序不能颠倒。
二叉树的性质
第i层上面,最多2^i-1个结点(i》=1)
深度为k的二叉树,最多2^i-1个结点(i》=1)
对于一个任意二叉树,终端结点为n,度为2的结点为n-1
满二叉树:深度为k,且有2^i-1个结点的二叉树.*每一层结点树到最大
完全二叉树:从上到下,从左到右编号和1~n的结点对应
*叶结点只能在层数最大两个出现;
*右子层次为n左为n或者n+1
有n个结点的完全二叉树,深度为log2n向下取整加一。
对于一个完全二叉树,对任意结点,
i=1,则代表是根,i》1则双亲是i/2向下取整
2i代表左孩子,2i+1代表右孩子。
二叉树存储在表中,
遍历二叉树
先序(根、左、右):
中序(左、根、右):
后序(左、右、根):
前缀表示(波兰式),中缀表示,后缀表示(逆波兰式)
层次遍历:从左到右,从上到下。
线索二叉树:线索链表里面表示前驱后驱的叫线索,联线过程叫线索化。
树的存储结构
顺序存储:双亲表示法
孩子表示法
孩子兄弟表示法
具体内容二叉树ppt
哈夫曼树
带权路径最小的树
路径长度:树根到每一个结点的路径长度和
wpl=权值*(层数-1)
如何构造哈夫曼树?
给的结点都是叶结点,取最小两个构成第一个数,把他们权值加起来,按照左小于右把倒数第三小安排了。。。
编码方式左0右1