树的存储结构
文章目录树的逻辑结构双亲表示法顺序存储孩子表示法顺序 链式存储孩子兄弟表示法链式存储树的逻辑结构树是一种递归定义的数据结构。树是n (n≥0)个结点的有限集合n0时称为空树这是一种特殊情况。在任意一棵非空树中应满足有且仅有一个特定的称为根的结点。当n1时其余结点可分为mm0个互不相交的有限集合T1,T2,…Tm其中每个集合本身又是一棵树并且称为根结点的子树。二叉树一个分支结点最多可能有两棵子树。树一个分支结点可以有多棵子树。【只依靠数组下标无法反映结点之间的逻辑关系】在树当中除了根结点外其他任何一个结点都有且仅有一个双亲结点有且仅有一个父结点。双亲表示法顺序存储如何实现树的存储结构用一维数组顺序存储各个结点。每个结点中保存数据元素、指向双亲结点父节点的“指针”。#defineMAX_TREE_SIZE100// 树中最多结点树// 树的结点定义typedefstruct{ElemType data;// 数据域 存储数据元素intparent;// 父结点在数组中的下标根结点 parent -1}PTNode;// 树的类型定义typedefstruct{PTNode nodes[MAX_TREE_SIZE];// 数组存储所有结点intn;// 当前结点个数}PTree;双亲表示法的优缺点优点查找双亲父节点极其方便O(1)。缺点查找某个结点的所有孩子必须遍历整个数组O(n)效率较低。适用于“找父亲”多“找孩子”少的应用场景。如并查集拓展双亲表示法存储“森林”每棵树的根节点双亲指针 -1孩子表示法顺序 链式存储孩子表示法用数组顺序存储各个结点。每个结点中保存数据元素、孩子链表头指针。将每个结点的所有孩子用一个单链表串起来。// 1. 孩子链表结点存储数组下标typedefstructCTNode{intchild;// 孩子在数组中的下标structCTNode*next;// 指向下一个兄弟}*ChildPtr;// 2. 表头结构数组元素typedefstruct{ElemType data;// 数据域ChildPtr firstChild;// 指向第一个孩子的指针}CTBox;typedefstruct{CTBox nodes[MAX_TREE_SIZE];// 数组intn,r;// 结点总数 和 根的位置}CTree;孩子表示法的优缺点优点查找某个结点的所有孩子非常方便。。缺点查找父结点需要遍历整个结构O(n)。适用于“找孩子”多“找父亲”少的应用场景。如服务流程树拓展孩子表示法存储“森林”。【注】用孩子表示法存储森林需要记录多个根的位置孩子兄弟表示法链式存储树的孩子兄弟表示法与二叉树类似采用二叉链表实现。每个结点内保存数据元素和两个指针但两个指针的含义与二叉树结点不同。// 树的存储——孩子兄弟表示法typedefstructCSNode{ElemType data;// 数据域structCSNode*firstchild,*nextsibling;// 左指向第一个孩子右指向右边一个兄弟}CSNode,*CSTree;// 二叉树结点链式存储typedefstructBiTNode{ElemType data;structBiTNode*lchild,*rchild;// 左子树 右子树}BiTNode,*BiTNode;拓展孩子兄弟表示法存储“森林”。【注】用“孩子兄弟表示法”存储 树或森林 时从存储视角来看形态上与二叉树类似。森林中的每棵树的根节点是为平级的兄弟关系。

相关新闻

BetterNCM-Installer在网易云音乐插件管理中的实战配置指南

BetterNCM-Installer在网易云音乐插件管理中的实战配置指南

BetterNCM-Installer在网易云音乐插件管理中的实战配置指南 【免费下载链接】BetterNCM-Installer 一键安装 Better 系软件 项目地址: https://gitcode.com/gh_mirrors/be/BetterNCM-Installer BetterNCM-Installer是专为网易云音乐PC客户端设计的插件管理器安装工具&am…

2026/8/2 14:31:13 阅读更多 →
深入理解浮点数精度:从二进制转换原理到工程实践

深入理解浮点数精度:从二进制转换原理到工程实践

1. 项目概述:不只是“转换”,更是理解计算机的基石“十进制小数与二进制小数互转”,这个标题听起来像是计算机科学导论课里最基础的一课,很多人可能觉得看一眼规则就会了。但在我十多年的开发生涯里,我见过太多因为对浮…

2026/8/2 14:31:13 阅读更多 →
为XIAO微控制器打造稳定可靠的CAN总线扩展板:从硬件设计到软件实战

为XIAO微控制器打造稳定可靠的CAN总线扩展板:从硬件设计到软件实战

1. 项目概述:为什么需要一块CAN总线扩展板? 如果你玩过嵌入式开发,尤其是涉及工业控制、汽车电子或者机器人领域,那么“CAN总线”这个词对你来说肯定不陌生。它就像设备之间的“神经系统”,负责在各种嘈杂的工业环境下…

2026/8/2 14:30:12 阅读更多 →

最新新闻

OBS Studio完整指南:免费开源直播软件的终极视觉魔法

OBS Studio完整指南:免费开源直播软件的终极视觉魔法

OBS Studio完整指南:免费开源直播软件的终极视觉魔法 【免费下载链接】obs-studio OBS Studio - Free and open source software for live streaming and screen recording 项目地址: https://gitcode.com/GitHub_Trending/ob/obs-studio 想要让你的直播画面…

2026/8/2 15:17:44 阅读更多 →
CUSUM累积和图实战:抓住X-bar抓不到的缓慢漂移

CUSUM累积和图实战:抓住X-bar抓不到的缓慢漂移

0. 背景故事某12英寸Fab的扩散工艺工程师张工最近很苦恼:负责的氧化炉(Oxidation Furnace)连续三个月良率出现缓慢下滑,每个月下降0.1%~0.15%,累计已经损失了约0.4个百分点的wafer良率。但查看MES系统里的X-bar控制图&…

2026/8/2 15:17:44 阅读更多 →
3分钟上手!这款神器让你轻松下载全网视频资源,告别资源焦虑

3分钟上手!这款神器让你轻松下载全网视频资源,告别资源焦虑

3分钟上手!这款神器让你轻松下载全网视频资源,告别资源焦虑 【免费下载链接】res-downloader 视频号、小程序、抖音、快手、小红书、直播流、m3u8、酷狗、QQ音乐等常见网络资源下载! 项目地址: https://gitcode.com/GitHub_Trending/re/res-downloader…

2026/8/2 15:17:44 阅读更多 →
USB转RS485转换器核心芯片选型、硬件电路与通信调试全解析

USB转RS485转换器核心芯片选型、硬件电路与通信调试全解析

1. 项目缘起:为什么我们需要USB转RS485? 在工业自动化、楼宇控制、安防监控或者一些老旧的工控设备调试现场,你大概率会碰到一个场景:你的电脑只有USB接口,而面前那台设备或者那条长长的总线,却伸出一个九针…

2026/8/2 15:17:44 阅读更多 →
RS485 CAN Shield:从差分信号到工业网关的硬件设计与实战

RS485 CAN Shield:从差分信号到工业网关的硬件设计与实战

1. 项目概述:RS485 CAN Shield是什么?如果你玩过Arduino或者树莓派,想搞点工业控制、汽车电子或者智能家居的网关,那你大概率会碰到两个名字:RS485和CAN。这两个家伙可以说是工控和车载领域最经典、最顽强的通信协议了…

2026/8/2 15:17:44 阅读更多 →
NifSkope:三步解决游戏模型编辑难题,让3D创作变得如此简单

NifSkope:三步解决游戏模型编辑难题,让3D创作变得如此简单

NifSkope:三步解决游戏模型编辑难题,让3D创作变得如此简单 【免费下载链接】nifskope A git repository for nifskope. 项目地址: https://gitcode.com/gh_mirrors/ni/nifskope 你是否曾经为《上古卷轴》或《辐射》系列游戏中的模型文件而烦恼&am…

2026/8/2 15:16:43 阅读更多 →

日新闻

最大流算法详解:从水管网络到Ford-Fulkerson与Dinic实战

最大流算法详解:从水管网络到Ford-Fulkerson与Dinic实战

1. 从水管网络到最大流:一个核心问题的诞生想象一下,你是一个城市供水系统的总工程师。你的城市有多个水源(水库),需要通过一个复杂的地下管道网络,将水输送到各个居民区。每条管道都有其最大通水能力&…

2026/8/2 0:00:38 阅读更多 →
基于Springboot的企业门户网站(源码+LW+调试文档+讲解)

基于Springboot的企业门户网站(源码+LW+调试文档+讲解)

温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台…

2026/8/2 0:00:38 阅读更多 →
MATLAB xcorr函数详解:从互相关原理到四大实战应用

MATLAB xcorr函数详解:从互相关原理到四大实战应用

1. 从一次信号“找茬”说起:为什么我们需要互相关几年前,我在处理一组声学传感器数据时遇到了一个棘手的问题。我有两个麦克风记录了一段相同的音频信号,理论上它们接收到的声音波形应该非常相似,只是由于麦克风位置不同&#xff…

2026/8/2 0:00:38 阅读更多 →

周新闻

最大流算法详解:从水管网络到Ford-Fulkerson与Dinic实战

最大流算法详解:从水管网络到Ford-Fulkerson与Dinic实战

1. 从水管网络到最大流:一个核心问题的诞生想象一下,你是一个城市供水系统的总工程师。你的城市有多个水源(水库),需要通过一个复杂的地下管道网络,将水输送到各个居民区。每条管道都有其最大通水能力&…

2026/8/2 0:00:38 阅读更多 →
基于Springboot的企业门户网站(源码+LW+调试文档+讲解)

基于Springboot的企业门户网站(源码+LW+调试文档+讲解)

温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:本人主页置顶文章(点我)开头有 CSDN 平台…

2026/8/2 0:00:38 阅读更多 →
MATLAB xcorr函数详解:从互相关原理到四大实战应用

MATLAB xcorr函数详解:从互相关原理到四大实战应用

1. 从一次信号“找茬”说起:为什么我们需要互相关几年前,我在处理一组声学传感器数据时遇到了一个棘手的问题。我有两个麦克风记录了一段相同的音频信号,理论上它们接收到的声音波形应该非常相似,只是由于麦克风位置不同&#xff…

2026/8/2 0:00:38 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/2 6:34:16 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/2 2:47:48 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/2 0:23:22 阅读更多 →