Eastman算法是一种用于生成逗号码(commafree code)的经典算法,由W.L. Eastman在1965年提出。该算法的主要思想如下:
将所有长度为n的字符串表示成一棵树的叶节点,根节点到叶节点的路径表示一个字符串。
从根开始,递归地向下生成树。对于每个节点,生成它的所有子节点,且这些子节点对应的字符串互不相同。
如果某节点处无法生成满足要求的子节点,则回溯重新生成。
当一条分支生成了n个满足要求的叶节点(字符串)时,得到一个可行解。
重复上述过程,遍历树的所有分支,找出所有可行解。
在生成过程中,记录当前获得的最大逗号码大小,最终输出这个最大值。
网友评论