一个prufer编码与一棵无根树一一对应。
编码:每次从无根树上找到度数为1的点(叶子),删之,将其相邻点加入prufer序。
解码:G={1,2,...,n},每次在G中找到最小的没出现在prufer序中的点,与prufer序当前的第一个点连边,在全集和G中分别删掉选中的点。最后G中两个点连条边,解码成功。
两者都可以开个优先队列搞。有线性做法不会。
一个点在prufer序中出现次数=度数-1.
可以用排列组合算出固定全部或若干点度数的无根树个数。
一个prufer编码与一棵无根树一一对应。
编码:每次从无根树上找到度数为1的点(叶子),删之,将其相邻点加入prufer序。
解码:G={1,2,...,n},每次在G中找到最小的没出现在prufer序中的点,与prufer序当前的第一个点连边,在全集和G中分别删掉选中的点。最后G中两个点连条边,解码成功。
两者都可以开个优先队列搞。有线性做法不会。
一个点在prufer序中出现次数=度数-1.
可以用排列组合算出固定全部或若干点度数的无根树个数。