算法合集之“树的枚举”.pptVIP

  • 2
  • 0
  • 约1.16千字
  • 约 21页
  • 2017-05-19 发布于四川
  • 举报
算法合集之“树的枚举”

江苏省常州高级中学 李源;树,在计算机算法中是非常重要的非线形结构。即使撇开树的其他广泛应用不说,单单对树本身的形态进行思考与研究,也是一个十分有趣,且具有挑战性的过程;常规的搜索加判重的做法:;树的大小定义;现在回到枚举有向树的问题上来:对于深度为d,结点数为n 的所有形态的有向树,根据上面的比较规则,可以把它们从大到小排成一个序列。举d=3,n=6为例,这个序列是:;进一步地,对于任意的n和d ,在相应序列中的第一棵树和最后一棵树的形态是容易确定的,如下:;现在问题就转化为,根据上述的大小定义,能否找到一种变换的规则,使根据这种规则,可以从最小的一棵树开始,连续地、不遗漏不重复地生成接下来的所有不同形态的树?;首先,从树的序列中的一个形态变换到另一个形态,是一个变小的过程。 在这个变换过程中,至少有一棵子树被变小了,变小的过程是通过夺走它的一个子结点实现的(我们用一个虚线框来表示被变小的子树)。;它们会适当地变大,然而由于它们在有向树大小比较的过程中的地位比先前被变小的那棵子树要低,于是,总的说来,整个有向树就被变小了。;过程I 寻找被删去结点;过程I 寻找被删去结点;过程I 算法;在对树的大小定义中,深度比结点数更优先。所以,在选择待删除结点时,应该尽量选择删除后不影响子树深度的结点优先处理。 因此,在找到A结点后,必须沿其父亲结点进行回溯,直到当前结点以下的子树的深度

文档评论(0)

1亿VIP精品文档

相关文档