热门标签 | HotTags
当前位置:  开发笔记 > 人工智能 > 正文

数据结构树、二叉树、线索二叉树

1.树的基本概念    首先是一些树的基本概念,比如说空树、非空树除此之外还有关于树的基本常识:        1.树的根节点没有前驱,且除了根节点以外的其他节点有且只有一个前驱 


1.树的基本概念

        首先是一些树的基本概念,比如说空树、非空树除此之外还有关于树的基本常识:

        1.树的根节点没有前驱,且除了根节点以外的其他节点有且只有一个前驱

        2.树的所有结点可以有零个或多个后继

        然后要注意一些基本的术语:

        a)子孙、祖先、双亲、孩子、兄弟、堂兄弟

        b)结点的度、树的度(结点中的最大度数)、分支结点(度大于0)、叶子结点(度为0 的结点)

        c)结点的深度是从顶部自上而下的,结点的高度是从叶子结点自下而上的,树的高度是结点的最大层数。

        d)有序树和无序树(有序树是指各子树从左到右是有次序的,有序树给插入比较带来了方便,否则就为无序数)

        e)路径和路径长度(两个结点直接经过的结点序列构成了路径,经过的边的条数则为路径长度)

        f)森林是m棵不相交的树的集合


2.树的性质

        1.*树的结点数量为所有结点的度数之和+1

        2.度为m的树中第i层至少有m^i-1个结点(i>=1)

        3.高度为h的m叉树至多有(m^h-1)/(m-1)个结点

        4.具有n个结点的m叉树的最小高度为log以m为底(n(m-1)+1)向上取整

        ps:这些都可以自己推导

【例题】1.度为4的树中,有20个度为4的结点,10个度为3 的结点,1个度为2 的结点,10个度为1的结点,则树的叶子结点的个数为多少?

总结点数量(总度数+1):20*4+10*3+1*2+10*1+1=123

而叶子节点的个数为度为0的个数,有因此用总结点数量减去度为1 2 3节点的个数即为叶子结点的个数:123-20-10-1-10=82(个)


 
3.二叉树的基本概念

        1.二叉树的定义

                二叉树也是一种树形结构,特点是每个结点至多只有两颗子树(不存在度大于2的结点)子树有左右之分,不可以随意颠倒次序


        2.一些需要知道的二叉树:

                1.满二叉树(除了叶子结点意外其他结点的度均为2)

                2.完全二叉树(重要)

                        1.如果i <=n/2的向下取整,则i为分支结点,否则为叶子结点(n为结点数)

                        2.若有度为1的结点,则只可能有一个

                3.二叉排序树

                        左子树的所有结点的关键字均小于根结点的关键字,而右子树则相反

                4.平衡二叉树

                        任意结点的左右子树的深度差不超过1


3.*二叉树的性质

        1.非空二叉树上的叶子结点的个数等于度为2 的结点的个数+1.即 N0=N2+1

        2.非空二叉树第k层至多有2^(k-1)个结点

        3.高度为h的二叉树至多有2^h-1个结点(等比求和)

        4.n个结点的完全二叉树的高度为log以2为底(n+1)取顶或者log以2为底n取底+1


4.二叉树的存储结构

        1.顺序存储结构(更适合完全二叉树)

        2.链式存储结构(含有n+1个空链域)

                


5.二叉树的遍历与线索二叉树

        二叉树的遍历有先序遍历,中序遍历,后序遍历,指的是子树和根结点的访问次序,

        分别为根左右,左根右,左右根。

        要注意的是层次遍历也称层序遍历,是按队列的方式访问各个结点,其过程如下

        1.根结点入队

        2.若队列非空,队头出队,并访问该结点,并将左右子树插入队列

        3.重复此操作


        线索二叉树

                对于研究生考试来说,这个地方的考点一般是手写线索化和代码,及前驱和后继的寻找和规律的总结。相比于二叉树,线索化的二叉树多了两个标志域:Ltag和Rtag,Ltag为1指示结点的前驱,Rtag为1指示结点的后继,而为0分别指示左右孩子。关于不同遍历方式线索化二叉树的构造,要注意的是先序遍历中的寻找前驱的过程可能会出现死循环的情况。这部分要结合画图和代码好理解一些。



推荐阅读
  • 阿里Treebased Deep Match(TDM) 学习笔记及技术发展回顾
    本文介绍了阿里Treebased Deep Match(TDM)的学习笔记,同时回顾了工业界技术发展的几代演进。从基于统计的启发式规则方法到基于内积模型的向量检索方法,再到引入复杂深度学习模型的下一代匹配技术。文章详细解释了基于统计的启发式规则方法和基于内积模型的向量检索方法的原理和应用,并介绍了TDM的背景和优势。最后,文章提到了向量距离和基于向量聚类的索引结构对于加速匹配效率的作用。本文对于理解TDM的学习过程和了解匹配技术的发展具有重要意义。 ... [详细]
  • 用友深耕烟草行业25年,提出数字化转型建议
    本文介绍了用友在烟草行业深耕25年的经验,提出了数字化转型的建议,包括总体要求、主要任务、发展阶段和六位一体推进举措。通过数字化转型,烟草行业将注入新动能,实现高质量发展。 ... [详细]
  • 浏览器中的异常检测算法及其在深度学习中的应用
    本文介绍了在浏览器中进行异常检测的算法,包括统计学方法和机器学习方法,并探讨了异常检测在深度学习中的应用。异常检测在金融领域的信用卡欺诈、企业安全领域的非法入侵、IT运维中的设备维护时间点预测等方面具有广泛的应用。通过使用TensorFlow.js进行异常检测,可以实现对单变量和多变量异常的检测。统计学方法通过估计数据的分布概率来计算数据点的异常概率,而机器学习方法则通过训练数据来建立异常检测模型。 ... [详细]
  • 110. Balanced Binary Tree [Easy] 平衡树/递归
    本文介绍了一道关于平衡树的题目,通过递归和辅助函数来判断一个二叉树是否平衡。辅助函数返回根结点的深度,如果左子树或右子树不是平衡树,则返回-1。主函数根据辅助函数的返回值判断二叉树是否平衡。 ... [详细]
  • 本文介绍了腾讯最近开源的BERT推理模型TurboTransformers,该模型在推理速度上比PyTorch快1~4倍。TurboTransformers采用了分层设计的思想,通过简化问题和加速开发,实现了快速推理能力。同时,文章还探讨了PyTorch在中间层延迟和深度神经网络中存在的问题,并提出了合并计算的解决方案。 ... [详细]
  • 词袋模型的通俗介绍
    词,袋, ... [详细]
  • 本文介绍了使用哈夫曼树实现文件压缩和解压的方法。首先对数据结构课程设计中的代码进行了分析,包括使用时间调用、常量定义和统计文件中各个字符时相关的结构体。然后讨论了哈夫曼树的实现原理和算法。最后介绍了文件压缩和解压的具体步骤,包括字符统计、构建哈夫曼树、生成编码表、编码和解码过程。通过实例演示了文件压缩和解压的效果。本文的内容对于理解哈夫曼树的实现原理和应用具有一定的参考价值。 ... [详细]
  • 在2022年,随着信息化时代的发展,手机市场上出现了越来越多的机型选择。如何挑选一部适合自己的手机成为了许多人的困扰。本文提供了一些配置及性价比较高的手机推荐,并总结了选择手机时需要考虑的因素,如性能、屏幕素质、拍照水平、充电续航、颜值质感等。不同人的需求不同,因此在预算范围内找到适合自己的手机才是最重要的。通过本文的指南和技巧,希望能够帮助读者节省选购手机的时间。 ... [详细]
  • 从高级程序员到CTO的4次能力跃迁!如何选择适合的技术负责人?
    本文讲解了从高级程序员到CTO的4次能力跃迁,以及如何选择适合的技术负责人。在初创期、发展期、成熟期的每个阶段,创业公司需要不同级别的技术负责人来实现复杂功能、解决技术难题、提高交付效率和质量。高级程序员的职责是实现复杂功能、编写核心代码、处理线上bug、解决技术难题。而技术经理则需要提高交付效率和质量。 ... [详细]
  • Learning to Paint with Model-based Deep Reinforcement Learning
    本文介绍了一种基于模型的深度强化学习方法,通过结合神经渲染器,教机器像人类画家一样进行绘画。该方法能够生成笔画的坐标点、半径、透明度、颜色值等,以生成类似于给定目标图像的绘画。文章还讨论了该方法面临的挑战,包括绘制纹理丰富的图像等。通过对比实验的结果,作者证明了基于模型的深度强化学习方法相对于基于模型的DDPG和模型无关的DDPG方法的优势。该研究对于深度强化学习在绘画领域的应用具有重要意义。 ... [详细]
  • 背景应用安全领域,各类攻击长久以来都危害着互联网上的应用,在web应用安全风险中,各类注入、跨站等攻击仍然占据着较前的位置。WAF(Web应用防火墙)正是为防御和阻断这类攻击而存在 ... [详细]
  • macOS Big Sur全新设计大版本更新,10+个值得关注的新功能
    本文介绍了Apple发布的新一代操作系统macOS Big Sur,该系统采用全新的界面设计,包括图标、应用界面、程序坞和菜单栏等方面的变化。新系统还增加了通知中心、桌面小组件、强化的Safari浏览器以及隐私保护等多项功能。文章指出,macOS Big Sur的设计与iPadOS越来越接近,结合了去年iPadOS对鼠标的完善等功能。 ... [详细]
  • 2016 linux发行版排行_灵越7590 安装 linux (manjarognome)
    RT之前做了一次灵越7590黑苹果炒作业的文章,希望能够分享给更多不想折腾的人。kawauso:教你如何给灵越7590黑苹果抄作业​zhuanlan.z ... [详细]
  • 北京景点排行榜 北京最好玩的旅游景点
    2019北京最好玩的旅游景点有哪些?下文为大家整理了2019北京景点排行榜,希望可以帮到您哦!  2019北京景点排行榜:  1、故宫  帝都必打卡的地点之一。  北京故宫是中国明 ... [详细]
  • 本文介绍了互联网思维中的三个段子,涵盖了餐饮行业、淘品牌和创业企业的案例。通过这些案例,探讨了互联网思维的九大分类和十九条法则。其中包括雕爷牛腩餐厅的成功经验,三只松鼠淘品牌的包装策略以及一家创业企业的销售额增长情况。这些案例展示了互联网思维在不同领域的应用和成功之道。 ... [详细]
author-avatar
手机用户2502907673
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有