高效的树结构层次结构重建

时间:2010-12-09 17:18:16

标签: sorting data-structures tree hierarchy

我有这样的树结构:

1 ABC

1.1 DEF

1.1.2 GHI

1.2 JKL

1.2.1 MNO

2 PQR

2.1

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

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

2 个答案:

答案 0 :(得分:0)

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

你可能做的最简单的事情

  1. 将其分为两个变量:numbertext
  2. 每当您交换两个树节点时(即在排序期间),只交换text值,并将number值保持原样。
  3. 每当您添加新元素作为最后一个子元素时,只需使用previousLastElement.number + 1
  4. 即可
  5. 每当您打印出元素编号时,会反向追加以点分隔的所有父编号。
  6. 现在唯一剩下的复杂性是当你插入元素时,你必须在那之后“推”其他元素的数字(但只在那一个级别上),或者当你删除元素时,你必须拉他们。

答案 1 :(得分:0)