【问题标题】:Efficient Tree Structure Hierarchy Rebuild高效的树结构层次结构重建
【发布时间】:2023-03-21 14:26:01
【问题描述】:

我有这样的树结构:

1个ABC

1.1 防御

1.1.2 GHI

1.2 JKL

1.2.1 移动网络运营商

2 PQR

2.1

...每个级别的深度和长度没有限制。现在发生的情况是,我取出了树结构周围的一些元素,最后我想要一个适当的、重组的层次编号。

在这种情况下,您通常如何以最少的工作量重新排序和应用适当的层次编号?这一个有点基本的用例,但我正在寻找一些改进的空间。

【问题讨论】:

    标签: sorting data-structures tree hierarchy


    【解决方案1】:

    我想您将数字和文本都保存在同一个 value 变量中。

    您可以做的最简单的事情是:

    1. 将其分成两个变量:numbertext
    2. 每当您交换两个树节点(即在排序期间)时,只需交换 text 值并将 number 值保留在它们所在的位置。
    3. 无论何时添加新元素作为最后一个子元素,只需使用previousLastElement.number + 1
    4. 每当您打印出元素编号时,请反向附加其所有父编号,以点分隔。

    现在唯一剩下的复杂性是当你插入元素时,你必须在那个元素之后“推”其他元素的数字(但只在那个级别上),或者当你删除元素时,你必须拉他们。

    【讨论】:

      【解决方案2】:

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-04-18
        • 1970-01-01
        • 2015-12-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-10-01
        相关资源
        最近更新 更多