# 树
## 概念
在计算机科学中,树(tree)是一种抽象数据类型(ADT)或是实现这种抽象数据类型的数据结构,用来模拟具有树状结构性质的数据集合。它是由n(n>0)个有限节点组成一个具有层次关系的集合。把它叫做“树”是因为它看起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的。
## 生活实例
族谱
## 特点:
- 每个节点都只有有限个子节点或无子节点;
- 没有父节点的节点称为根节点;
- 每一个非根节点有且只有一个父节点;
- 除了根节点外,每个子节点可以分为多个不相交的子树;
- 树里面没有环路(cycle)
## 图示
![树](img/Treedatastructure.png)
## 术语
- **节点的度**:一个节点含有的子树的个数称为该节点的度;
- **树的度**:一棵树中,最大的节点度称为树的度;
- **叶节点**或终端节点:度为零的节点;
![节点与度](img/21AKcEALa8.png)
- 非终端节点或分支节点:度不为零的节点;
- 父亲节点或**父节点**:若一个节点含有子节点,则这个节点称为其子节点的父节点;
- 孩子节点或**子节点**:一个节点含有的子树的根节点称为该节点的子节点;
- 兄弟节点:具有相同父节点的节点互称为兄弟节点;
- 节点的层次:从根开始定义起,根为第1层,根的子节点为第2层,以此类推;
- **深度**:对于任意节点n,n的深度为从根到n的唯一路径长,根的深度为0;
- **高度**:对于任意节点n,n的高度为从n到一片树叶的最长路径长,所有树叶的高度为0;
![深度](img/G21BLhmll3.png)
- 堂兄弟节点:父节点在同一层的节点互为堂兄弟;
- 节点的祖先:从根到该节点所经分支上的所有节点;
- 子孙:以某节点为根的子树中任一节点都称为该节点的子孙。
- 森林:由m(m>=0)棵互不相交的树的集合称为森林;
## 分类
<table cellspacing="0" class="nowraplinks collapsible autocollapse navbox-inner" style="border-spacing:0;background:transparent;color:inherit" id="collapsibleTable0"><tbody><tr><th scope="col" class="navbox-title" colspan="2"><div style="font-size:110%"><a href="https://wikipedia.hk.wjbk.site/baike-%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%A7%91%E5%AD%A6" title="计算机科学">计算机科学</a>中的<a href="https://wikipedia.hk.wjbk.site/baike-%E6%A0%91_(%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84)" title="树 (数据结构)">树</a></div></th></tr><tr style="height:2px"><td colspan="3"></td></tr><tr><th scope="row" class="navbox-group"><a href="https://wikipedia.hk.wjbk.site/baike-%E4%BA%8C%E5%8F%89%E6%A0%91" title="二叉树">二叉树</a></th><td class="navbox-list navbox-odd hlist" style="text-align:left;border-left-width:2px;border-left-style:solid;width:100%;padding:0px"><div style="padding:0em 0.25em">
<ul><li><a href="https://wikipedia.hk.wjbk.site/baike-%E4%BA%8C%E5%85%83%E6%90%9C%E5%B0%8B%E6%A8%B9" title="二叉搜索树">二叉查找树(BST)</a></li>
<li><a href="https://wikipedia.hk.wjbk.site/baike-%E7%AC%9B%E5%8D%A1%E5%B0%94%E6%A0%91" title="笛卡尔树">笛卡尔树</a></li>
<li><a href="/w/index.php?title=MVP%E6%A0%91&action=edit&redlink=1" class="new" title="MVP树(页面不存在)">MVP树</a></li>
<li><span class="ilh-all" data-orig-title="Top tree" data-lang-code="en" data-lang-name="英语" data-foreign-title="Top tree"><span class="ilh-page"><a href="/w/index.php?title=Top_tree&action=edit&redlink=1" class="new" original-title="Top tree(页面不存在)">Top tree</a></span><span class="noprint ilh-comment">(<span class="ilh-lang">英语</span><span class="ilh-colon">:</span><span class="ilh-link"><a href="https://en.wikipedia.org/wiki/Top_tree" class="extiw" title="en:Top tree"><span lang="en" dir="auto">Top tree</span></a></span>)</span></span></li>
<li><a href="/w/index.php?title=T%E6%A0%91&action=edit&redlink=1" class="new" title="T树(页面不存在)">T树</a></li></ul>
</div></td></tr><tr style="height:2px"><td colspan="3"></td></tr><tr><th scope="row" class="navbox-group"><a href="https://wikipedia.hk.wjbk.site/baike-%E8%87%AA%E5%B9%B3%E8%A1%A1%E4%BA%8C%E5%8F%89%E6%9F%A5%E6%89%BE%E6%A0%91" class="mw-redirect" title="自平衡二叉查找树">自平衡二叉查找树</a></th><td class="navbox-list navbox-even hlist" style="text-align:left;border-left-width:2px;border-left-style:solid;width:100%;padding:0px"><div style="padding:0em 0.25em">
<ul><li><a href="https://wikipedia.hk.wjbk.site/baike-AA%E6%A0%91" title="AA树">AA树</a></li>
<li><a href="https://wikipedia.hk.wjbk.site/baike-AVL%E6%A0%91" title="AVL树">AVL树</a></li>
<li><a href="https://wikipedia.hk.wjbk.site/baike-%E5%B7%A6%E5%80%BE%E7%BA%A2%E9%BB%91%E6%A0%91" title="左倾红黑树">左倾红黑树</a></li>
<li><a class="mw-selflink selflink">红黑树</a></li>
<li><a href="https://wikipedia.hk.wjbk.site/baike-%E6%9B%BF%E7%BD%AA%E7%BE%8A%E6%A0%91" title="替罪羊树">替罪羊树</a></li>
<li><a href="https://wikipedia.hk.wjbk.site/baike-%E4%BC%B8%E5%B1%95%E6%A0%91" title="伸展树">伸展树</a></li>
<li><a href="https://wikipedia.hk.wjbk.site/baike-%E6%A0%91%E5%A0%86" title="树堆">树堆</a></li>
<li><a href="https://wikipedia.hk.wjbk.site/baike-%E5%8A%A0%E6%9D%83%E5%B9%B3%E8%A1%A1%E6%A0%91" title="加权平衡树">加权平衡树</a></li></ul>
</div></td></tr><tr style="height:2px"><td colspan="3"></td></tr><tr><th scope="row" class="navbox-group"><a href="https://wikipedia.hk.wjbk.site/baike-B%E6%A0%91" title="B树">B树</a></th><td class="navbox-list navbox-odd hlist" style="text-align:left;border-left-width:2px;border-left-style:solid;width:100%;padding:0px"><div style="padding:0em 0.25em">
<ul><li><a href="https://wikipedia.hk.wjbk.site/baike-B%2B%E6%A0%91" title="B+树">B+树</a></li>
<li><a href="/w/index.php?title=B*%E6%A0%91&action=edit&redlink=1" class="new" title="B*树(页面不存在)">B*树</a></li>
<li><a href="/w/index.php?title=Bx%E6%A0%91&action=edit&redlink=1" class="new" title="Bx树(页面不存在)">B<small><sup>x</sup></small>树</a></li>
<li><a href="/w/index.php?title=UB%E6%A0%91&action=edit&redlink=1" class="new" title="UB树(页面不存在)">UB树</a></li>
<li><a href="https://wikipedia.hk.wjbk.site/baike-2-3%E6%A0%91" title="2-3树">2-3树</a></li>
<li><a href="https://wikipedia.hk.wjbk.site/baike-2-3-4%E6%A0%91" title="2-3-4树">2-3-4树</a></li>
<li><a href="/w/index.php?title=(a,b)-%E6%A0%91&action=edit&redlink=1" class="new" title="(a,b)-树(页面不存在)">(a,b)-树</a></li>
<li><span class="ilh-all" data-orig-title="Dancing tree" data-lang-code="en" data-lang-name="英语" data-foreign-title="Dancing tree"><span class="ilh-page"><a href="/w/index.php?title=Dancing_tree&action=edit&redlink=1" class="new" original-title="Dancing tree(页面不存在)">Dancing tree</a></span><span class="noprint ilh-comment">(<span class="ilh-lang">英语</span><span class="ilh-colon">:</span><span class="ilh-link"><a href="https://en.wikipedia.org/wiki/Dancing_tree" class="extiw" title="en:Dancing tree"><span lang="en" dir="auto">Dancing tree</span></a></span>)</span></span></li>
<li><a href="https://wikipedia.hk.wjbk.site/baike-H%E6%A0%91" title="H树">H树</a></li></ul>
</div></td></tr><tr style="height:2px"><td colspan="3"></td></tr><tr><th scope="row" class="navbox-group"><a href="https://wikipedia.hk.wjbk.site/baike-%E5%A0%86_(%E6%95%B0%E6%8D%AE%E7%BB%93%E6%9E%84)" class="mw-redirect" title="堆 (数据结构)">堆</a></th><td class="navbox-list navbox-even hlist" style="text-align:left;border-left-width:2px;border-left-style:solid;width:100%;padding:0px"><div style="padding:0em 0.25em">
<ul><li><a href="https://wikipedia.hk.wjbk.site/baike-%E4%BA%8C%E5%8F%89%E5%A0%86" title="二叉堆">二叉堆</a></li>
<li><a href="https://wikipedia.hk.wjbk.site/baike-%E4%BA
对使用 Python 学习数据结构和算法的资料进行收集并学习.zip
需积分: 0 109 浏览量
更新于2024-01-11
收藏 43.9MB ZIP 举报
Python是一门强大且易学的编程语言,广泛应用于数据科学、机器学习、Web开发等多个领域。为了帮助大家更好地掌握Python,我们精心整理了一系列Python学习资料,旨在为不同需求的Python学习者提供全方位的学习支持。
本次上传的资料包括以下几部分:
课程资料:这部分资料提供了系统化的Python课程,从Python基础语法到进阶技能,内容涵盖Python的核心知识点。通过学习这些课程,你将建立起坚实的Python基础,为后续的学习和应用打下坚实基础。
学习笔记:在学习过程中,我们整理了丰富的学习笔记,这些笔记包含了重点知识点的总结、实战经验分享以及常见问题的解答。通过阅读这些笔记,你可以随时巩固所学,解决学习中遇到的问题,提高学习效率。
项目实战:理论学习是基础,但真正的掌握需要通过实践来检验。这部分资料提供了多个Python项目实战案例,涵盖Web开发、数据分析、机器学习等领域。通过实际操作这些项目,你将有机会将所学知识应用于实际场景,提升编程实战能力。
其他资料:除了以上内容,我们还整理了一些其他有用的Python学习资料,如教程、视频教程、习题集等。这些资料将帮助你进一步拓展Python技能,满足你不同方向的学习需求。
无论你是初学者还是有一定Python基础的开发者,本系列学习资料都能为你提供宝贵的资源和指导。我们希望通过这些资料,帮助你建立起对Python的全面认知,提升编程技能,实现从入门到精通的跨越。同时,我们也鼓励你在学习的过程中不断实践、探索和创新,将所学知识应用于实际场景,发挥Python的强大潜力。Python是一门强大且易学的编程语言,广泛应用于数据科学、机器学习、Web开发等多个领域。为了帮助大家更好地掌握Python,我们精心整理了一系列Python学习资料,旨在为不同需求的Python学习者提供全方位的学习支持。
本次上传的资料包括以下几部分:
课程资料:这部分资料提供了系统化的Python课程,从Python基础语法到进阶技能,内容涵盖Python的核心知识点。通过学习这些课程,你将建立起坚实的Python基础,为后续的学习和应用打下坚实基础。
学习笔记:在学习过程中,我们整理了丰富的学习笔记,这些笔记包含了重点知识点的总结、实战经验分享以及常见问题的解答。通过阅读这些笔记,你可以随时巩固所学,解决学习中遇到的问题,提高学习效率。
项目实战:理论学习是基础,但真正的掌握需要通过实践来检验。这部分资料提供了多个Python项目实战案例,涵盖Web开发、数据分析、机器学习等领域。通过实际操作这些项目,你将有机会将所学知识应用于实际场景,提升编程实战能力。
其他资料:除了以上内容,我们还整理了一些其他有用的Python学习资料,如教程、视频教程、习题集等。这些资料将帮助你进一步拓展Python技能,满足你不同方向的学习需求。
无论你是初学者还是有一定Python基础的开发者,本系列学习资料都能为你提供宝贵的资源和指导。我们希望通过这些资料,帮助你建立起对Python的全面认知,提升编程技能,实现从入门到精通的跨越。同时,我们也鼓励你在学习的过程中不断实践、探索和创新,将所学知识应用于实际场景,发挥Python的强大潜力。Python是一门强大且易学的编程语言,广泛应用于数据科学、机器学习、Web开发等多个领域。为了帮助大家更好地掌握Python,我们精心整理了一系列Python学习资料,旨在为不同需求的Python学习者提供全方位的学习支持。
本次上传的资料包括以下几部分:
课程资料:这部分资料提供了系统化的Python课程,从Python基础语法到进阶技能,内容涵盖Python的核心知识点。通过学习这些课程,你将建立起坚实的Python基础,为后续的学习和应用打下坚实基础。
学习笔记:在学习过程中,我们整理了丰富的学习笔记,这些笔记包含了重点知识点的总结、实战经验分享以及常见问题的解答。通过阅读这些笔记,你可以随时巩固所学,解决学习中遇到的问题,提高学习效率。
项目实战:理论学习是基础,但真正的掌握需要通过实践来检验。这部分资料提供了多个Python项目实战案例,涵盖Web开发、数据分析、机器学习等领域。通过实际操作这些项目,你将有机会将所学知识应用于实际场景,提升编程实战能力。
其他资料:除了以上内容,我们还整理了一些其他有用的Python学习资料,如教程、视频教程、习题集等。这些资料将帮助你进一步拓展Python技能,满足你不同方向的学习需求。
无论你是初学者还是有一定Python基础的开发者,本系列学习资料都能为你提供宝贵的资源和指导。我们希望通过这些资料,帮助你建立起对Python的全面认知,提升编程技能,实现从入门到精通的跨越。同时,我们也鼓励你在学习的过程中不断实践
%小红书%bin
- 粉丝: 2111
- 资源: 2148
最新资源
- 基于mmse的不确定电力系统有限次测量的分析估计 源代码, matlab代码按照高水平文章复现,保证正确 大量可再生分布式能源的预期渗透正推动下一代电力系统走向不确定性,这可能对状态估计的可靠性和复杂
- 西南科技大学数据分析期末大作业.zip
- 西门子PLC1200立体库机器人码垛机伺服视觉AGV程序 包括2台西门子PLC1215程序和2台西门子触摸屏TP700程序 PLC和基恩士相机视觉定位Modbus TCP通讯(SCL语言) PLC和A
- 知名扫地机代码方案 某知名大厂扫地机代码 适合需要学习项目与代码规范的工程师 硬件驱动包含 陀螺仪姿态传感器bmi160、电源管理bq24733等 软件驱动包括 IIC、PWM、SPI、多路A
- siddhi-execution-json jar包用于在处理事件中对json字符串进行处理
- 直流充电桩,双枪控制板方案,需要的砸单
- 埃斯顿量产控制器 埃斯顿量产伺服控制器C代码和硬件图纸 1)TMS320F28335+FPGA全套代码;全C写的DSP代码,VHDL写的FPGA代码(Lattice MXO1200) 2)AD电
- 信捷XC PLC与西门子V20变频器通讯程序 原创可直接用于生产的程序,程序带注释,并附送触摸屏程序,有接线方式和设置,通讯地址说明等 程序采用轮询,可靠稳定 器件:信捷XC3的PLC,西门子V20
- 台达DVP ES系列PLC与3台英威腾GD变频器通讯 程序带注释,并附送昆仑通态和威纶通触摸屏程序,有接线方式,设置 器件:台达DVP ES系列的PLC,3台英威腾GD系列变频器,昆仑通态,威纶通触
- 控制系统的数学建模,被控对象的数学模型建立,simulink模型实现 提供四旋翼和带尾翼直升机,共轴式直升机的数学模型、simulink模型,推导 提供资料,文献 刚体飞行动力学模型,运动学模型
- 深度学习中的Fashion-MNIST数据集与卷积神经网络实现及其训练分析
- MPC控制器设计,模型预测控制,线性时变模型预测控制,LTV MPC,提供理论讲解与应用实现 提供MPC算法、LTV MPC 算法在直升机和四旋翼中的应用实例 提供模型预测控制资料 提供matl
- Flink Forward Asia 2024 上海站(脱敏)PPT合集.zip
- Node.js安装与环境配置指南:覆盖Windows、macOS及Linux系统全流程
- 微信小程序开发全流程详解:从准备到发布的全面指南与关键技术解析
- 斑马打印机C#控制程序源代码,适合自己进行二次开发 文档齐全,包括驱动程序和如何设置斑马打印机的说明文档 源代码可以打印条形码标签和二维码标签