Algorithm 如何编写动态树 描述

Algorithm 如何编写动态树 描述,algorithm,data-structures,tree,Algorithm,Data Structures,Tree,树总共有n个节点,每个节点都有一个权重,我们可以假设它是整数。我们对这些树进行了一些操作: Linkx,y-链接两个节点x和y,我们可以假设之前x和y之间没有边,我们可以假设在添加边x,y之后,图仍然是一棵树。 Cutx,y-擦除x和y之间的边,我们可以假设之前x,y之间存在一条边。 QueryMIN_Pathx,y-获取路径x->y中的最小权重,输入数据保证在x和y之间有一条路径。 QueryMIN_Subtreex-获取x子树中的最小权重 Modify_Pathx,y,z-将z添加到路径x-

树总共有n个节点,每个节点都有一个权重,我们可以假设它是整数。我们对这些树进行了一些操作:

Linkx,y-链接两个节点x和y,我们可以假设之前x和y之间没有边,我们可以假设在添加边x,y之后,图仍然是一棵树。 Cutx,y-擦除x和y之间的边,我们可以假设之前x,y之间存在一条边。 QueryMIN_Pathx,y-获取路径x->y中的最小权重,输入数据保证在x和y之间有一条路径。 QueryMIN_Subtreex-获取x子树中的最小权重 Modify_Pathx,y,z-将z添加到路径x->y中的每个节点,输入数据保证x和y之间有一条路径。 Modify_Subtreex,z-将z添加到子树x中的每个节点 Change_rootx-更改包含x的树的根,x成为根 我们可以假设所有操作都是正确的

球门
我需要所有这些操作在摊销时间内以Ologn的形式在每个操作中运行。

@Turtle这不是一个家庭作业,只是一个开放的讨论。@Turtle,我知道几种方法,比如Top Tree,但我想知道更多你不能在树上添加或删除边,但仍然有一棵树,所以我认为描述中一定缺少一些东西。“也许你指的是森林而不是树?”匿名者说,“是的,这是森林。你可以阅读塔扬和沃内克的《实践中的动态树》。它们提供了所有动态树的全面调查和实验比较。