数据结构--树
1.树1.1树的概念与结构树是⼀种⾮线性的数据结构它是由 nn0 个有限结点组成⼀个具有层次关系的集合。把它叫做 树是因为它看起来像⼀棵倒挂的树也就是说它是根朝上⽽叶朝下的。有⼀个特殊的结点称为根结点根结点没有前驱结点。每棵⼦树的根结点有且只有⼀个前驱可以 有 0 个或多个后继。因此树是递归定义的。树形结构中⼦树之间不能有交集否则就不是树形结构非树形结构⼦树是不相交的如果存在相交就是图了除了根结点外每个结点有且仅有⼀个⽗结点前驱节点⼀棵N个结点的树有N-1条边1.2树相关术语⽗结点/双亲结点若⼀个结点含有⼦结点则这个结点称为其⼦结点的⽗结点如上图A是B的⽗ 结点⼦结点/孩⼦结点⼀个结点含有的⼦树的根结点称为该结点的⼦结点如上图B是A的孩⼦结点结点的度⼀个结点有⼏个孩⼦他的度就是多少⽐如A的度为6F的度为2K的度为0树的度⼀棵树中最⼤的结点的度称为树的度如上图树的度为 6叶⼦结点/终端结点度为 0的结点称为叶结点如上图 B、C、H、I... 等结点为叶结点分⽀结点/⾮终端结点度不为 0 的结点如上图 D、E、F、G... 等结点为分⽀结点兄弟结点具有相同⽗结点的结点互称为兄弟结点(亲兄弟)如上图 B、C 是兄弟结点结点的层次从根开始定义起根为第 1 层根的⼦结点为第 2 层以此类推 树的⾼度或深度树中结点的最⼤层次如上图树的⾼度为 4结点的祖先从根到该结点所经分⽀上的所有结点如上图 A 是所有结点的祖先 路径⼀条从树中任意节点出发沿⽗节点-⼦节点连接达到任意节点的序列⽐如A到Q的路径为 A-E-J-QH到Q的路径H-D-A-E-J-Q⼦孙以某结点为根的⼦树中任⼀结点都称为该结点的⼦孙。如上图所有结点都是A的⼦孙森林由 mm0 棵互不相交的树的集合称为森林1.3树的表示孩⼦兄弟表⽰法struct TreeNode { struct Node* child; // 左边开始的第⼀个孩⼦结点 struct Node* brother; // 指向其右边的下⼀个兄弟结点 int data; // 结点中的数据域 };2.二叉树2.1概念与结构⼀棵⼆叉树是结点的⼀个有限集合该集合由⼀个根结点 加上两棵别称为左⼦树和右⼦树的⼆叉树组成或者为空。从上图可以看出⼆叉树具备以下特点1. ⼆叉树不存在度⼤于 2的结点2. ⼆叉树的⼦树有左右之分次序不能颠倒因此⼆叉树是有序树2.2特殊的二叉树2.2.1满二叉树⼀个⼆叉树如果每⼀个层的结点数都达到最⼤值则这个⼆叉树就是满⼆叉树。也就是说如果⼀ 个⼆叉树的层数为 K 且结点总数是2的k次方−1 则它就是满⼆叉树。树的总节点数2^02^12^2.......2^(k-1),等比数列求和2^k-12.2.2完全二叉树1.除了最后一层每层节点个数达到最大2.最后一层节点个数不一定最大3.结点从左到右一次最大满⼆叉树是⼀种特殊的完全⼆叉树。二叉树性质2.3二叉树存储结构2.3.1顺序结构顺序结构存储就是使⽤数组来存储⼀般使⽤数组只适合表⽰完全⼆叉树因为不是完全⼆叉树会有 空间的浪费完全⼆叉树更适合使⽤顺序结构存储。2.3.2链式结构⼆叉树的链式存储结构是指⽤链表来表⽰⼀棵⼆叉树即⽤链来指⽰元素的逻辑关系。通常的⽅法 是链表中每个结点由三个域组成数据域和左右指针域左右指针分别⽤来给出该结点左孩⼦和右孩 ⼦所在的链结点的存储地址。链式结构⼜分为⼆叉链和三叉链

相关新闻

算法-链表-二、成对交换两个节点

算法-链表-二、成对交换两个节点

成对交换链表节点的题目要求将链表中每两个相邻节点交换位置。如果链表长度是奇数,最后一个节点保持不变。算法思路:通过遍历链表,每次交换两个相邻的节点。需要考虑链表的头节点如何处理,可以使用虚拟头节点来简化边界条件的处理…

2026/7/5 14:43:05 阅读更多 →
传感器测量精度漂移、偏差超差故障排查与校准方法

传感器测量精度漂移、偏差超差故障排查与校准方法

​测量精度是传感器的核心性能指标,其输出信号与真实物理量的偏差,直接决定测控系统的精准度。在实际运行中,传感器测量精度漂移、偏差超差是仅次于无信号、信号异常的高频故障,表现为传感器输出值与标准值持续偏离、缓慢变化、超…

2026/6/23 14:01:18 阅读更多 →
给大一自己建议

给大一自己建议

建议:1.早点拿驾照2.有空兼职存点钱3.熟练调教使用ai4.该耍就耍,多出去旅游工作:

2026/7/4 22:11:30 阅读更多 →

最新新闻

免费前端开发库认证终极指南:从零到专业的三步进阶法

免费前端开发库认证终极指南:从零到专业的三步进阶法

免费前端开发库认证终极指南:从零到专业的三步进阶法 【免费下载链接】freeCodeCamp freeCodeCamp.orgs open-source codebase and curriculum. Learn math, programming, and computer science for free. 项目地址: https://gitcode.com/GitHub_Trending/fr/free…

2026/7/7 0:47:42 阅读更多 →
结构化方法:自顶向下的“拆解术“

结构化方法:自顶向下的“拆解术“

结构化方法:自顶向下的"拆解术" 开篇:从拆快递中学到的智慧 你有没有这样的经历? 收到一个巨大的快递,打开一看,里面有无数个小包裹,每个小包裹里还有更小的包裹,层层嵌套。 这种"从大到小、层层分解"的方式,就是结构化方法的核心思想。 什么…

2026/7/7 0:43:41 阅读更多 →
并发编程核心概念辨析

并发编程核心概念辨析

一、背景:CPU 多级缓存架构为了读者在阅读后序章节时,有更清晰、更形象的认知,这里放上现代 CPU 缓存的典型结构。一图胜千言,不多赘述,仅陈述以下要点:一颗 CPU,往往有多个核心(cor…

2026/7/7 0:43:41 阅读更多 →
如何识别PARP14

如何识别PARP14

一、PARP14的基础概述聚腺苷二磷酸核糖聚合酶14(PARP14,Poly(ADP-ribose) polymerase 14),也被称为PARP-4,是PARP家族中的一个重要成员。PARP家族包括多个聚腺苷二磷酸核糖聚合酶,它们在细胞的多个关键过程…

2026/7/7 0:39:40 阅读更多 →
Java毕设选题推荐:基于 SpringBoot 的教学过程考核评价系统的设计与实现 基于 SpringBoot 的课程阶段性考核管理系统【附源码、mysql、文档、调试+代码讲解+全bao等】

Java毕设选题推荐:基于 SpringBoot 的教学过程考核评价系统的设计与实现 基于 SpringBoot 的课程阶段性考核管理系统【附源码、mysql、文档、调试+代码讲解+全bao等】

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

2026/7/7 0:37:39 阅读更多 →
综合项目三:Web全栈应用从零部署

综合项目三:Web全栈应用从零部署

在当今的互联网时代,掌握全栈开发与部署能力是每一位后端开发者、DevOps 工程师乃至独立开发者的核心竞争力。然而,很多初学者在完成代码编写后,却在部署环节频频碰壁——服务器环境配置、域名解析、HTTPS 证书、负载均衡、日志监控……这些“最后一公里”的问题往往比写代码…

2026/7/7 0:35:38 阅读更多 →

日新闻

鸿蒙新特性:图片画廊与轮播导航——构建沉浸式图片浏览体验

鸿蒙新特性:图片画廊与轮播导航——构建沉浸式图片浏览体验

图片浏览是移动应用中最高频的场景之一。从社交应用的照片流到电商平台的商品图集,从旅游应用的景点相册到摄影作品展示——用户对图片浏览的体验要求不断提高:流畅的切换动画、直观的缩略图导航、便捷的收藏操作、自动播放模式。HarmonyOS NEXT ArkUI 虽…

2026/7/7 0:05:16 阅读更多 →
24V DC-DC降压芯片PW2312B/PW2815,SOT23-6到SOP8-EP方案对比

24V DC-DC降压芯片PW2312B/PW2815,SOT23-6到SOP8-EP方案对比

24V稳压芯片完整选型指南 PW8600 PW75XX PW2815 PW2312B LDODC/DC全方案 一、24V稳压方案概述 24V直流电源在工业自动化、门禁系统、电梯控制、汽车电子、LED驱动、监控设备等场景中应用极广,是最常见的中压直流母线电压。要将24V母线稳定降压至下游MCU、传感器…

2026/7/7 0:05:16 阅读更多 →
RAG+知识图谱混合检索与Graph RAG核心对比

RAG+知识图谱混合检索与Graph RAG核心对比

做企业RAG落地的团队,往往容易卡在一容易踩坑的选型难题: 当需求单纯靠向量RAG搞不定、单纯靠知识图谱也搞不定,必须同时依赖「文本语义理解 实体关系推理」时,到底是做「向量图谱混合检索」就够了,还是必须上「Grap…

2026/7/7 0:07:19 阅读更多 →

周新闻

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱,支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools …

2026/7/6 8:11:50 阅读更多 →
威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型的陌生现状在忙碌疲惫的一天里,参与了关于混合后量子密码学的讨论,应付端点攻击找茬的人,还参与留言板讨论后,发现“威胁模型”对多数人仍是陌生概念,且多被当作时髦用语。有趣的相关画作有一幅由 Embyr 创作的…

2026/7/6 8:11:52 阅读更多 →
渗透测试入门指南:从零基础到实战环境搭建

渗透测试入门指南:从零基础到实战环境搭建

1. 从“看热闹”到“入门”:我理解的渗透测试到底是什么?每次看到新闻里说某个大公司的数据被“黑”了,或者某个网站被攻击导致服务瘫痪,你是不是和我一样,心里会冒出两个念头:一是“这黑客真厉害”&#x…

2026/7/6 6:52:56 阅读更多 →

月新闻