树和二叉树

文章详细介绍了树的各种表示方法、性质及遍历方式,包括双亲、孩子链和孩子兄弟链的存储结构。接着,对比了二叉树与度为2的树的区别,并探讨了二叉树的特性、存储结构和遍历方法。此外,还提到了哈夫曼树的构建及其在编码中的应用,强调了其最小带权路径长度的优化特性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 树


    逻辑表示方法
        树形表示法
        文氏图表示法
        凹入表示法
        括号表示法
    性质
        树的结点数等于所有结点的度加一
        度为m的树中第i层最多有m的(i-1)次方个结点
        高度为h的m次树最多的节点数(等比数列公式求和)
        具有n个结点的m次树的最小高度
    树的遍历
        先根遍历
        后根遍历
        层次遍历
    存储结构
        双亲存储结构
            存放数据元素和双亲的位置
        孩子链存储结构
            存放数据元素和指向所有孩子结点的指针
        孩子兄弟链存储结构
            一个数据域,一个最左的孩子(长子)和下一个兄弟结点的指针域

二叉树


    二叉树与度为2的树
        度为2的树要求必须包含一个度为2的结点,而二叉树不需要
        度为2的树不区分左右子树,而二叉树严格区分
    性质
        非空二叉树的叶子节点数等于双分支节点数加1
        其他性质
          
    二叉树和树、森林的转换
        
    存储结构
        顺序存储结构
            只能存储完全二叉树或满二叉树,对于一般二叉树,可以化为完全二叉树或满二叉树
            结点编号为i,则双亲为i/2的向下取整,左孩子为2i,右孩子为2i+1
            优点
                查找一个结点的双亲结点和孩子结点方便
            缺点
                二叉树的插入和删除操作不方便
        链式存储结构
    二叉树的遍历
        先序遍历
        中序遍历
        后序遍历
        层次遍历
    二叉树的构造
        已知中序序列和先序序列
        已知中序序列和后序序列
    线索化二叉树
        先序线索二叉树
        后序线索二叉树
        中序线索二叉树

哈夫曼树


    给定N个权值作为N个叶子结点,构造一棵二叉树,若该树的带权路径长度达到最小,称这样的二叉树为最优二叉树,也称为哈夫曼树
    定理:对于具有n个叶子结点的哈夫曼树,一共有2n-1个结点
    哈夫曼编码
        编码:将文字转为二进制字符串
        左分支为0,右分支为1
        实质:使频率越高的字符采用越短的编码
        在一组编码中,任一字符的编码不可能使其他字符编码的前缀

 

实现代码

数据结构与算法: 记录学习笔记,包括代码和思维导图

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值