树的一些概念及实现方法

简介: 千字文章带你进入数据结构——树的世界!本篇为你介绍树的基本概念及实现方法举例。以后会给大家介绍最重要的数——二叉树的所有知识及代码实现!

重要概念

图片.png

    节点的度:一个节点含有的子树的个数称为该节点的度(就是看有多少根线和此节点相连); 如上图:A的度为6。

   叶节点或终端节点:度为0的节点称为叶节点(往下找没有和此节点相连的点);如上图:B、C、H、I...等节点为叶节点。

   非终端节点或分支节点:度不为0的节点;如上图:D、E、F、G...等节点为分支节点。

   双亲节点或父节点:若一个节点含有子节点,则这个节点称为其子节点的父节点;如上图:A是B的父节点。

   孩子节点或子节点:一个节点含有的子树的根节点称为该节点的子节点(通俗点讲就是和父节点相对称);如上图:B是A的子节点。

   兄弟节点:具有相同父节点的节点称为兄弟节点(亲兄弟);如上图B、C是兄弟节点,B、D是兄弟节点,C、D是兄弟节点,他们都有一个相同的父节点A。

  树的度:一棵树中,最大的节点的度称为树的度;如上图:树的度为6(因为A拥有最大节点度)。

   节点的层次:从根开始定义起,根为第一层,根的子节点为第2层,以此类推;

   树的高度或深度:树中节点的最大层次;如上图:树的高度为4。

   节点的祖先:从根到该节点所经分支上所有节点;如上图:A是所有节点的祖先(A是B的父节点,也可以说A是B的祖先)。

  子孙:以某节点为根的子树中任一节点都成为该节点的子孙。如上图:所有节点都是A的子孙;以E为根的子树,I、J、P、Q都是E的子孙。

   森林:由m(m>0)颗互不相交的多棵树的集合称为森林;


树的表示方式

①顺序表存孩子的指针

C语言

structTreeNode{
intdata ;
structTreeNode*child1;
structTreeNode*child2;
    ...
}

C++

structTreeNode{
intdata ;
vector<structTreeNode*>childs;
}

②左孩子右兄弟

typedefintDataType;
structNode{
structNode*_firstChild1;  //第一个孩子的结点structNode*_pNextBrother; //指向其下一个兄弟结点Datatype_data;             //结点中的数据域}

图片.png

图片.png


③双亲表示法

图片.png


树在实际中的运用

表示文件系统的目录树结构。

图片.png

目录
相关文章
|
2月前
|
存储 数据采集 人工智能
97_微调基础:全参数 vs LoRA
在2025年的大模型时代,微调技术已经成为将通用大语言模型(LLM)适配到特定领域和任务的核心技术手段。随着模型规模的不断膨胀——从早期的数十亿参数到如今的数千亿甚至万亿参数,如何在有限的计算资源下高效地微调大模型,成为AI工程师面临的关键挑战。本文将深入探讨两种主流的微调方法:全参数微调和LoRA(Low-Rank Adaptation)低秩适应微调,从原理、技术实现、资源需求、性能表现等多个维度进行全面对比分析,帮助读者在实际项目中做出最优的技术选择。
|
8月前
|
弹性计算 运维 自动驾驶
首个云超算国标正式发布!
近日,我国首个云超算国家标准GB/T 45400-2025正式发布,将于今年10月实施。该标准由阿里云联合多家机构起草,为云超算在高性能计算领域的应用提供规范。云超算结合传统HPC与云计算优势,解决传统HPC复杂、昂贵等问题。阿里云E-HPC V2.0是国内首批通过该标准认证的产品,支持大规模弹性计算,显著降低成本。新标准将推动算力基础设施迈向标准化、智能化新时代。
“燕缘 · 滴水湖”大学生AI+国际创业大赛 ——算力资源领取说明
本次大赛为每位参赛学生提供300元阿里云算力资源,通过赛事官网链接领取。领取流程包括:点击专属页面、扫码登录阿里云、完成代金券领取,并在“我的权益-可用券”中查看领取状态。注意代金券使用期限和额度,避免超额使用产生欠费。若已领取过,可直接使用。
|
Kubernetes 安全 Serverless
基于Service Mesh管理Knative流量最佳实践
Istio扩展了Kubernetes,以建立可编程、应用程序感知的服务网格(Service Mesh)。Istio与Knative结合使用,可以为Serverless应用工作负载带来标准、通用的流量管理、可观测和安全性能力。
基于Service Mesh管理Knative流量最佳实践
|
存储 安全 C语言
C语言程序设计——格式输入函数scanf()
C语言程序设计——格式输入函数scanf()
C#DateTime时间转换方法大全
C#DateTime时间转换方法大全
751 0
|
Docker Windows 容器
Windows Docker Desktop 无法启动 自动退出报错信息为:Docker Desktop -Unexpected WsL error An unexpected error was e
Windows Docker Desktop 无法启动 自动退出报错信息为:Docker Desktop -Unexpected WsL error An unexpected error was e
1090 0
|
Shell
奥比中光ROS启动节点运行异常退出:[camera/driver-2] process has finished cleanly
奥比中光ROS启动节点运行异常退出:[camera/driver-2] process has finished cleanly
690 0
奥比中光ROS启动节点运行异常退出:[camera/driver-2] process has finished cleanly
|
机器学习/深度学习 编解码 算法
全新语义分割方法SegViT | 沈春华老师团队提出全新语义分割方法(一)
全新语义分割方法SegViT | 沈春华老师团队提出全新语义分割方法(一)
784 0
前缀,中缀,后缀表达式
前缀,中缀,后缀表达式
473 0