Algorithm 遍历给定大小的所有树

Algorithm 遍历给定大小的所有树,algorithm,math,graph,brute-force,Algorithm,Math,Graph,Brute Force,我经常面临用蛮力检查给定大小的树(图)的某些属性的问题。你有做这件事的好方法吗?理想情况下,我只想检查每个同构类一次(但毕竟,速度才是最重要的) 位旋转技巧最受欢迎,因为n通常小于32:) 对于n个节点上的树,我要求使用比“遍历所有(n-1)-边子集并检查它们是否形成树”之类的算法稍微更精细的算法。这是Knuth的《计算机编程艺术》中关于组合算法的一卷。如果我没记错的话,那是个练习。既然他有这样的解决方案,我就把你指给他看。一些谷歌搜索发现了以下算法描述:。他们采用了一种计算有根树的算法来计算无

我经常面临用蛮力检查给定大小的树(图)的某些属性的问题。你有做这件事的好方法吗?理想情况下,我只想检查每个同构类一次(但毕竟,速度才是最重要的)

位旋转技巧最受欢迎,因为n通常小于32:)


对于n个节点上的树,我要求使用比“遍历所有(n-1)-边子集并检查它们是否形成树”之类的算法稍微更精细的算法。

这是Knuth的《计算机编程艺术》中关于组合算法的一卷。如果我没记错的话,那是个练习。既然他有这样的解决方案,我就把你指给他看。

一些谷歌搜索发现了以下算法描述:。他们采用了一种计算有根树的算法来计算无根树


显然,其他人已经证明,这只需要每棵树的摊销固定时间,PDF显示了一些性能度量来证明这一点。

什么样的树?您当前正在使用什么算法“漫游”树?你在说什么同构?这个问题是非常模糊的一般树,即具有n个节点和n-1条边的连通图。我所说的同构是指en.wikipedia.org/wiki/graph_同构。我不是在浏览一棵特定的树——我想生成一个所有树的列表。相关书籍章节的测试版可以在这里下载:(前分册4a:生成所有树)