prufer编码

一个prufer编码与一棵无根树一一对应。

编码:每次从无根树上找到度数为1的点(叶子),删之,将其相邻点加入prufer序。

解码:G={1,2,...,n},每次在G中找到最小的没出现在prufer序中的点,与prufer序当前的第一个点连边,在全集和G中分别删掉选中的点。最后G中两个点连条边,解码成功。

两者都可以开个优先队列搞。有线性做法不会。

一个点在prufer序中出现次数=度数-1.

可以用排列组合算出固定全部或若干点度数的无根树个数。

posted @ 2018-04-12 15:23  Blue233333  阅读(471)  评论(0编辑  收藏  举报