树的存储结构
文章目录树的逻辑结构双亲表示法顺序存储孩子表示法顺序 链式存储孩子兄弟表示法链式存储树的逻辑结构树是一种递归定义的数据结构。树是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;拓展孩子兄弟表示法存储“森林”。【注】用“孩子兄弟表示法”存储 树或森林 时从存储视角来看形态上与二叉树类似。森林中的每棵树的根节点是为平级的兄弟关系。

相关新闻

Unity IAP 4.x UWP应用内购买集成实战:从配置到上架全流程解析

Unity IAP 4.x UWP应用内购买集成实战:从配置到上架全流程解析

1. 项目概述与核心价值 如果你正在为你的Unity游戏或应用规划Windows Store(也就是现在的Microsoft Store)上架,并且打算加入应用内购买功能,那么Unity IAP 4.x(In-App Purchasing)是你绕不开的核心工具。我…

2026/8/2 14:28:51阅读更多 →
NFC供电墨水屏开发实战:从能量采集到固件优化的完整指南

NFC供电墨水屏开发实战:从能量采集到固件优化的完整指南

1. 项目缘起:为什么我们需要一块NFC供电的墨水屏?最近在捣鼓一个智能家居的入口项目,想做一个放在玄关的“家庭信息中枢”。核心需求很简单:能显示天气、日程、备忘录,偶尔还能展示一张家庭照片。但问题来了&#xff0…

2026/8/2 14:28:50阅读更多 →
Raspberry Pi Zero W Package E:从开发板到嵌入式成品的完整方案

Raspberry Pi Zero W Package E:从开发板到嵌入式成品的完整方案

1. 项目概述:Raspberry Pi Zero W Package E 是什么? 如果你对树莓派(Raspberry Pi)稍有了解,那么对 Zero W 这款小巧、廉价且自带无线功能的单板计算机一定不陌生。但“Package E”这个后缀,对于很多朋友来…

2026/8/2 14:28:50阅读更多 →
为什么选择BootNTRSelector?比原版BootNTR快在哪里?

为什么选择BootNTRSelector?比原版BootNTR快在哪里?

为什么选择BootNTRSelector?比原版BootNTR快在哪里? 【免费下载链接】BootNTR 项目地址: https://gitcode.com/gh_mirrors/bo/BootNTR BootNTRSelector是BootNTR的改良版本,它允许用户选择要加载的NTR版本,并且比常规Boot…

2026/8/2 19:43:02阅读更多 →
Unity资源逆向分析:AssetStudio核心原理与实战提取指南

Unity资源逆向分析:AssetStudio核心原理与实战提取指南

1. 项目概述:为什么你需要掌握AssetStudio?如果你是一名Unity开发者、技术美术、游戏爱好者,或者对游戏内容创作感兴趣,那么你很可能遇到过这样的场景:看到一个精美的Unity游戏,对其中的某个模型、一段音效…

2026/8/2 19:43:02阅读更多 →
如何将微信聊天记录转化为个人数字资产:WeChatMsg的完整解决方案

如何将微信聊天记录转化为个人数字资产:WeChatMsg的完整解决方案

如何将微信聊天记录转化为个人数字资产:WeChatMsg的完整解决方案 【免费下载链接】WeChatMsg 提取微信聊天记录,将其导出成HTML、Word、CSV文档永久保存,对聊天记录进行分析生成年度聊天报告 项目地址: https://gitcode.com/GitHub_Trendin…

2026/8/2 19:43:02阅读更多 →
多 Agent 协作系统瘫痪:协同状态机死锁与 DAG 拓扑自愈实践

多 Agent 协作系统瘫痪:协同状态机死锁与 DAG 拓扑自愈实践

多 Agent 协作系统瘫痪:协同状态机死锁与 DAG 拓扑自愈实践 1. 生产故障:Researcher 与 Writer 双 Agent 互等,系统陷入逻辑死锁 在我们的多 Agent 协作系统(Multi-Agent System)上线初期,遇到了极具代表性…

2026/8/2 19:43:02阅读更多 →
Tacview飞行数据分析工具:从入门到精通的完整指南

Tacview飞行数据分析工具:从入门到精通的完整指南

Tacview飞行数据分析工具:从入门到精通的完整指南 【免费下载链接】Tacview The Universal Flight Analysis Tool 项目地址: https://gitcode.com/gh_mirrors/ta/Tacview Tacview是一款专业的飞行数据分析工具,它能够帮助飞行爱好者和专业飞行员记…

2026/8/2 19:43:02阅读更多 →
OBS Studio色彩校正完全指南:5分钟打造电影级直播画面

OBS Studio色彩校正完全指南:5分钟打造电影级直播画面

OBS Studio色彩校正完全指南:5分钟打造电影级直播画面 【免费下载链接】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 19:41:01阅读更多 →
MATLAB xcorr函数详解:从互相关原理到四大实战应用

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

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

2026/8/2 0:00:10阅读更多 →
限时公开!某头部SaaS公司内部AI模板工厂架构文档(含5类行业模板源码+性能压测报告)

限时公开!某头部SaaS公司内部AI模板工厂架构文档(含5类行业模板源码+性能压测报告)

更多请点击: https://intelliparadigm.com 第一章:AI模板批量生成的核心价值与落地全景 AI模板批量生成正从实验性工具演进为现代软件工程的关键基础设施。它通过语义理解、上下文感知与结构化约束,将重复性高、模式明确的代码/文档/配置生成…

2026/8/2 0:00:12阅读更多 →
如何快速找回消失的网页:Web Archives浏览器扩展终极指南

如何快速找回消失的网页:Web Archives浏览器扩展终极指南

如何快速找回消失的网页:Web Archives浏览器扩展终极指南 【免费下载链接】web-archives Browser extension for viewing archived and cached versions of web pages, available for Chrome, Edge and Safari 项目地址: https://gitcode.com/gh_mirrors/we/web-a…

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

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

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

2026/8/2 0:00:10阅读更多 →
限时公开!某头部SaaS公司内部AI模板工厂架构文档(含5类行业模板源码+性能压测报告)

限时公开!某头部SaaS公司内部AI模板工厂架构文档(含5类行业模板源码+性能压测报告)

更多请点击: https://intelliparadigm.com 第一章:AI模板批量生成的核心价值与落地全景 AI模板批量生成正从实验性工具演进为现代软件工程的关键基础设施。它通过语义理解、上下文感知与结构化约束,将重复性高、模式明确的代码/文档/配置生成…

2026/8/2 0:00:12阅读更多 →
如何快速找回消失的网页:Web Archives浏览器扩展终极指南

如何快速找回消失的网页:Web Archives浏览器扩展终极指南

如何快速找回消失的网页:Web Archives浏览器扩展终极指南 【免费下载链接】web-archives Browser extension for viewing archived and cached versions of web pages, available for Chrome, Edge and Safari 项目地址: https://gitcode.com/gh_mirrors/we/web-a…

2026/8/2 0:00:13阅读更多 →
无损视频剪辑终极指南:如何实现快速高效的多媒体处理

无损视频剪辑终极指南:如何实现快速高效的多媒体处理

无损视频剪辑终极指南:如何实现快速高效的多媒体处理 【免费下载链接】lossless-cut The swiss army knife of lossless video/audio editing 项目地址: https://gitcode.com/gh_mirrors/lo/lossless-cut 在数字媒体创作领域,视频编辑处理的质量损…

2026/8/2 1:29:34阅读更多 →
AI辅助本科论文写作:8大工具评测与高效使用指南

AI辅助本科论文写作:8大工具评测与高效使用指南

1. 本科生论文写作的AI辅助现状本科毕业论文是每个大学生必须跨越的一道坎。记得我当年写论文时,光是文献检索就花了整整两周时间,打印的参考文献堆满了半个书桌。如今AI技术的发展为学术写作带来了革命性变化,合理使用这些工具可以节省80%以…

2026/8/2 2:32:55阅读更多 →
如何快速配置大麦自动抢票系统:从零开始搭建Python抢票助手

如何快速配置大麦自动抢票系统:从零开始搭建Python抢票助手

如何快速配置大麦自动抢票系统:从零开始搭建Python抢票助手 【免费下载链接】ticket-purchase 大麦自动抢票,支持人员、城市、日期场次、价格选择 项目地址: https://gitcode.com/GitHub_Trending/ti/ticket-purchase 还在为抢不到热门演唱会门票…

2026/8/2 2:09:20阅读更多 →