(数据结构)第五章 二叉树

本文探讨了数据结构中的二叉树,包括基于数组和链表的实现方式及其特点。重点介绍了二叉树的Huffman编码算法,用于构建最优带权编码树,以达到高效编码的目的。
摘要由CSDN通过智能技术生成

二叉树

数据结构大致分为两种类型:基于数组的实现和基于链表的实现。

两种结构的特点:

基于数组的实现:通过下标或秩,在常数时间内找到目标对象。插入和删除,需要耗费线性时间。

基于链表的实现:借助引用或位置对象,在常数时间内插入或删除元素。但需要线性时间,对整个结构进行遍历查找。

树的元素之间并不存在天然的直接后继和直接前驱关系,树属于半线性结构。

树是一种分层结构,是其本质属性之一。

5.1 二叉树及其表示

5.2 编码树

5.5 Huffman编码

数据结构的选取与设计:

(1)用BinTree实现PFC树

(2)用Vector实现PFC森林

(3)使用位图结构实现二进制编码串

构建PFC编码树过程:

由每一字符分别构造一棵单节点二叉树,并将他们视作一个森林。

初始森林中的\sum棵树将合成一颗完整的PFC编码树。

将PFC编码树转译为编码表.。

根据待编码字符快速确定与之对应的编码串。

平均编码长度是反应编码效率的重要指标。

真完全树:最优编码树中的叶节点只能出现于最低两层

带权平均编码长度取作编码树的叶节点带权平均深度。

Huffman编码算法

对于字符出现概率已知的任一字符集

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值