二叉树
数据结构大致分为两种类型:基于数组的实现和基于链表的实现。
两种结构的特点:
基于数组的实现:通过下标或秩,在常数时间内找到目标对象。插入和删除,需要耗费线性时间。
基于链表的实现:借助引用或位置对象,在常数时间内插入或删除元素。但需要线性时间,对整个结构进行遍历查找。
树的元素之间并不存在天然的直接后继和直接前驱关系,树属于半线性结构。
树是一种分层结构,是其本质属性之一。
5.1 二叉树及其表示
5.2 编码树
5.5 Huffman编码
数据结构的选取与设计:
(1)用BinTree实现PFC树
(2)用Vector实现PFC森林
(3)使用位图结构实现二进制编码串
构建PFC编码树过程:
由每一字符分别构造一棵单节点二叉树,并将他们视作一个森林。
初始森林中的棵树将合成一颗完整的PFC编码树。
将PFC编码树转译为编码表.。
根据待编码字符快速确定与之对应的编码串。
平均编码长度是反应编码效率的重要指标。
真完全树:最优编码树中的叶节点只能出现于最低两层
带权平均编码长度取作编码树的叶节点带权平均深度。
Huffman编码算法
对于字符出现概率已知的任一字符集