Выбор древовидной структуры

From
ALexandr Karimov ()
To
All
Date
2002-10-07T18:57:54Z
Area
RU.ALGORITHMS
From: "ALexandr Karimov" <karimov@delta.bn.by>

Есть следующая задача:
В начале мне приходит дерево следующего вида:
ROOT
    |-PIM1
    |    |-HOST1
    |    |-HOST2
    |-PIM2
    |    |-HOST2
    |-PIM3
        |-HOST2
        |-HOST3

Далее мне начинают поступать данные, в которых указано, с какого хоста они
пришли и к какому пиму относятся. Соответсвеено мне нужно в это дерево их
добавлять в порядке прибытия. Приоритет операции добавления и удаления ниже
среднего.
Важными операциями являются извлечение их из этого дерева по наложенному
фильтру, причем фильтр может быть двух видов:
1) ПИМ+ХОСТ (тут просто надо вернуть все множество в поддереве)
2) ПИМ+ВСЕ ЕГО ХОСТЫ (в данном случае необходимо вернуть множество
элементов, отсортированное в порядке их поступления)
Самой важной операцией является операция, которая возвращает кол-во
элементов после наложения фильтра.
Еще на будущее было бы неплохо иметь возможность достаточно быстро данный
вид дерева преобразовать в следующий:
ROOT
    |-HOST1
    |    |-PIM1
    |-HOST2
    |    |-PIM1
    |    |-PIM2
    |    |-PIM3
    |-HOST3
        |-HOST3
И при этом фильтры:
1) ПИМ+ХОСТ
2) ХОСТ + ВСЕ ЕГО ПИМЫ

Сам код будет реализовыватся на ява, но любая помощь в виде ссылок на
материалы или исходники (можно сишные) будет воспринята с благодарностью.

С уважением, Каримов Александр

--- ifmail v.2.15dev5
 * Origin: Demos online service (2:5020/400)