树:
树形结构是一类重要的非线性结构。树形结构是结点之间有分支,并具有层次关系的结构。它非常类似于自然界中的树。树结构在客观世界中是大量存在的,例如家谱、行政组织机构都可用树形象地表示。树在计算机领域中也有着广泛的应用,例如在编译程序中,用树来表示源程序的语法结构;在数据库系统中,可用树来组织信息;在分析算法的行为时,可用树来描述其执行过程。
二叉树是树形结构的一个重要类型。许多实际问题抽象出来的数据结构往往是二叉树的形式,即使是一般的树也能简单地转换为二叉树,而且二叉树的存储结构及其算法都较为简单,因此二叉树显得特别重要。
1、二叉树第i层上的结点数目最多为2i-1(i≥1);2、深度为k的二叉树至多有2k-1个结点(k≥1);3、在任意-棵二叉树中,若终端结点的个数为n0,度为2的结点数为n2,则no=n2+1;4、具有n个结点的完全二叉树的深度为:。
顺序存储结构、链式存储结构、二叉链表(二叉树的常用链式存储结构)、带双亲指针的二叉链表。
所谓遍历(Traversal)是指沿着某条搜索路线,依次对树中每个结点均做一次且仅做一次访问。访问结点所做的操作依赖于具体的应用问题。遍历是二叉树上最重要的运算之一,是二叉树上进行其它运算之基础。
n个结点的二叉链表中含有n+1个空指针域。利用二叉链表中的空指针域,存放指向结点在某种遍历次序下的前趋和后继结点的指针(这种附加的指针称为"线索")。这种加上了线索的二叉链表称为线索链表,相应的二叉树称为线索二叉树(Threaded BinaryTree)。根据线索性质的不同,线索二叉树可分为前序线索二叉树、中序线索二叉树和后序线索二叉树三种。
树或森林与二叉树之间有一个自然的一一对应关系。任何一个森林或一棵树可惟一地对应到一棵二叉树;反之,任何一棵二叉树也能惟一地对应到一个森林或一棵树。
讨论树的三种常用表示法:双亲链表表示法、孩子链表表示法、孩子兄弟链表表示法。
树T的前序遍历、树的后序遍历、前序遍历森林、后序遍历森林。
在权为wl,w2,…,wn的n个叶子所构成的所有二叉树中,带权路径长度最小(即代价最小)的二叉树称为最优二叉树或哈夫曼树。
数据压缩过程称为编码。即将文件中的每个字符均转换为一个惟一的二进制位串。数据解压过程称为解码。即将二进制位串转换为对应的字符。