一、树的概念
在计算机领域中,树是一种很常见的数据结构之一,这是一种非线性的数据结构。相关的概念较多,在此就不一一介绍了。
二、二叉树
(1)二叉树的定义
二叉树是指每个节点最多有两个子树的有序树,通常将其子树的根分别称作“左子树”和“右子树”(Right Subtree)。
二叉树的主要特点:
不存在度大于2的节点;有左右之分,次序不能颠倒;第i层最多有2^(i-1)个节点;深度为k的二叉树至多有2^k-1个节点;对任何一个二叉树T,如果其终节点数
(即叶节 点数)为n0,度为2的节点数为n2,则n0=n2+1.
二叉树有5种基本形态:
空二叉树、只有一个根节点的二叉树、右子树为空的二叉树、左子树为空的二叉树、完全二叉树。
(2)二叉树的性质(几个重要)
第i层的节点总数不超过2^(i-1);深度为h的二叉树最少有h个节点,最多有2^h-1个节点(h>=1);n0=n2+1(n0为度数为0的节点数,n1位度数为1的节点数,
n2为度数为2的节点数);有n个节点的完全二叉树的深度为int(log2 n)+1。
(3)二叉树的遍历:先序遍历、中序遍历、后序遍历。
参考学习资料:https://www.cnblogs.com/polly333/p/4740355.html
三、线索二叉树
线索二叉树是指n个节点的二叉链表中含有n+1个空指针域。利用二叉链表中的空指针域,存放指向节点在某种遍历次序下的前驱和后继节点的指针(这种附加的指针称为线索“”)。
参考学习资料:https://www.cnblogs.com/guweiwei/p/7090050.html
四、霍夫曼树
霍夫曼树是所有的“树”结构中最为优秀的品种之一,也称为哈夫曼树。
哈夫曼树与哈夫曼编码参考:https://www.cnblogs.com/wuyuankun/p/3982216.html
https://www.cnblogs.com/wxdjss/p/5496937.html