树的几种存储方法

本文参考https://oi-wiki.org/graph/tree-basic/

理论上说,树作为图的一种,可以由图表示方法完全表示,那为什么要特地给出树的存储方法?因为树具有一个很特别的性质:每个节点要么没有父节点(根节点),要么有且只有一个根节点。这个性质为我们的树存储提供了新思路。下面提供几种树存储方法。

①只记录父节点

即只给出一个parent[N]数组来记录每个节点的父亲节点。这种方式可以获得的信息较少,不便于进行自顶向下的遍历。常用于自底向上的递推问题中。

②邻接表表示法

即记录与每个节点相连的子节点(利用vector数据结构),同时,如果节点存在较明显的上下层级关系,亦可再添加多余的parent[N]数组来存储父节点信息。

③左孩子右兄弟法

即给出child[N]与sib[N]数组,其中child记录自己的一个孩子,sib记录自己的一个兄弟。下面给出示例代码。

④二叉树

设定child数组,child[N][1]为左孩子,child[N][2]为右孩子。

Original: https://www.cnblogs.com/johnsonstar/p/16646165.html
Author: Johnson-Hugo
Title: 树的几种存储方法

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/583963/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球