0

TreeItems で構築されたツリーがあります。各 TreeItem には次のメソッドがあります。

TreeItem   TreeItem::getParent()
TreeItem[] TreeItem::getChildren()
int        TreeItem::indexOf(TreeItem childItem)

このツリーの TreeItems の順序付けられていないセットもあります。このセットの最初の要素と最後の要素をすばやく見つけたい。

何か賢いアイデアはありますか?

4

1 に答える 1

0

セット内のツリーアイテムの1つを選択し(指定されたセットはサブツリーであると想定します)、最初にこのセットの親を見つけます。

while (element.getParent()!=null)
  element = element.getParent();
parent = element;

これで親ができ、子を再帰的に繰り返す必要があります。

TreeItem TreeItem::getLastChild()
{
 children = getChildren();
 if (children == null)
   return parent;

 int maxIndex = 0;

   // find child with maximum index
   .....

  return foundedChild.getLastChild();
}
于 2012-02-11T07:42:38.983 に答える