利用权重序列快速生成无标号自由树
数据结构与算法
2021-02-24 v2 离散数学
摘要
本文中,我们引入有序树的一种新表示——权重序列表示。进而利用它构造有根树与自由树的新表示,即规范权重序列表示。我们构造了为所有 n 阶有根树与自由树生成权重序列表示的算法,并作了若干修改以提升算法效率。算法的 Python 实现通过利用生成器避免存储递归调用返回的长树列表,并缓存小阶有根树列表,从而消除许多递归调用,实现了进一步改进。我们进一步展示了如何修改算法以生成自由树的邻接表与邻接矩阵表示。我们将生成自由树的 Python 实现与取自 NetworkX 的著名 WROM 算法的 Python 实现进行了运行时间比较。我们的算法实现比 WROM 算法实现快四倍以上。生成邻接表与矩阵的运行时间比权重序列稍长,但仍比 WROM 算法的相应实现快三倍以上。
引用
@article{arxiv.2010.07211,
title = {Fast Generation of Unlabelled Free Trees using Weight Sequences},
author = {Paul Brown and Trevor Fenner},
journal= {arXiv preprint arXiv:2010.07211},
year = {2021}
}
备注
21 pages, 1 table and 8 figures