Выбор древовидной структуры
- 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)