com.trackstudio.tools.tree
Class OrderedTree<T extends java.lang.Comparable>

java.lang.Object
  extended by com.trackstudio.tools.tree.OrderedTree<T>

public class OrderedTree<T extends java.lang.Comparable>
extends java.lang.Object

Дерево основано на трех массивах.


Constructor Summary
OrderedTree(T o)
           
 
Method Summary
 void add(T to, T o)
          Добавить объект в дерево
 boolean addAll(T to, java.util.List<T> c)
          Добавляет все элементы одного дерева во второе
 void addTree(T to, OrderedTree<T> t)
          Вставляет поддерево в дерево.
 boolean contains(T o)
          Проверяет ниличие элмента в дереве
 T get(T o)
          Возвращает элемент дерева
 java.util.ArrayList<T> getAncestors(T o)
          Возвращает предков для указанного узла
 java.util.List<T> getChildren(T o)
          Возвращает список узлов, дочерних к заданному
 int getChildrenCount(T o)
          Возвращает количество непосредственных потомков у узла
 int[] getChildrenPosition(int j)
          Возвращает позиции дочерних элементов
 java.util.List<T> getCommonNodes(T a, T b)
          Возвращает общие элементы двух деревьев
 java.util.List<T> getContents()
          Возвращает список всех элементов дерева
 java.util.List<T> getDescendents(T o)
          Возвращает все дочернии узлы для зааднного
 java.util.Iterator getDescendentsIterator(T o)
          Возвращает итератор для указанного узла
 java.util.List<T> getDiffNodes(T a, T b)
          Возвращает разные элементы двух деревьев
 int getElementsPosition(T elem)
          Возвращает позицию объекта в хранилище
 java.util.List<T> getLeaves()
          Возвращает листья дерева
 T getParent(T o)
          Возвращаем родительский узел.
 T getRoot()
          Возвращает корень дерева
 java.util.List<T> getSiblings(T o)
          Возвращает элементы одного уровня
 OrderedTree<T> getSubTree(T o)
          Возвращает поддерево для указанного узла
 boolean hasChildren(T o)
          Проверяет наличие потомков для узла
 boolean isChildOf(T child, T parent)
          Проверяет является ли один узел дочерним для другого
 boolean isParentOf(T parent, T child)
          Проверяет является ли один узел родительским для другого
 java.util.Iterator<T> iterator()
          Возвращает итератор
 void moveTree(T from, T to)
          Перемещает ветку дерева из одного узла в другой
 OrderedTree<T> remove(T o)
          Удаляет элемент из дерева
 void replaceWith(T o, T with)
          Замещает один узел другим, при этом никакого перемещения под-деревьев не происходит.
 int search(java.lang.Comparable elem)
          Поиск перебором.
 int size()
          Возвращает размер дерева
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

OrderedTree

public OrderedTree(T o)
Method Detail

search

public int search(java.lang.Comparable elem)
Поиск перебором. Нужен на случай, если бинарный поиск не работает (для неComparable элементов).

Parameters:
elem - сравниваемый элемент
Returns:
позиция найденного элемента

getElementsPosition

public int getElementsPosition(T elem)
Возвращает позицию объекта в хранилище

Parameters:
elem - объект, чуью позицию ищем
Returns:
позиция

add

public void add(T to,
                T o)
Добавить объект в дерево

Parameters:
to - узел, к которому добавляется объект
o - объект

getChildrenCount

public int getChildrenCount(T o)
Возвращает количество непосредственных потомков у узла

Parameters:
o - узел, для которого возвращаются потомки
Returns:
количество потомков или -1, если такого узла нет

getChildren

public java.util.List<T> getChildren(T o)
Возвращает список узлов, дочерних к заданному

Parameters:
o - заданный узел
Returns:
список узлов или null, если указанного узла не существует

getChildrenPosition

public int[] getChildrenPosition(int j)
Возвращает позиции дочерних элементов

Parameters:
j - позиция заданного узла
Returns:
список позиций

getDescendents

public java.util.List<T> getDescendents(T o)
Возвращает все дочернии узлы для зааднного

Parameters:
o - узел, для которого возвращаем дочерние узлы
Returns:
список дочерних узлов

getDescendentsIterator

public java.util.Iterator getDescendentsIterator(T o)
Возвращает итератор для указанного узла

Parameters:
o - узел
Returns:
итератор

getParent

public T getParent(T o)
Возвращаем родительский узел.

Parameters:
o - узел
Returns:
Родительский узел или null, если элемента нет в хранилище, либо это root (черт, тут вилка получается, надо как-то оговаривать заранее)

getAncestors

public java.util.ArrayList<T> getAncestors(T o)
Возвращает предков для указанного узла

Parameters:
o - узел
Returns:
список узлов

getContents

public java.util.List<T> getContents()
Возвращает список всех элементов дерева

Returns:
список элементов

addTree

public void addTree(T to,
                    OrderedTree<T> t)
Вставляет поддерево в дерево. Жуткий метод

Parameters:
to - куда вставляем
t - что вставляем. Должно быть OrderedTree

contains

public boolean contains(T o)
Проверяет ниличие элмента в дереве

Parameters:
o - искомый элемент
Returns:
TRUE - есть в дереве, FALSE - нет

getRoot

public T getRoot()
Возвращает корень дерева

Returns:
корневой элемент

getLeaves

public java.util.List<T> getLeaves()
Возвращает листья дерева

Returns:
список узлов

remove

public OrderedTree<T> remove(T o)
Удаляет элемент из дерева

Parameters:
o - удаляемый элемент
Returns:
новое дерево, без элемента

getSubTree

public OrderedTree<T> getSubTree(T o)
Возвращает поддерево для указанного узла

Parameters:
o - ухел
Returns:
поддерево

size

public int size()
Возвращает размер дерева

Returns:
размер дерева

replaceWith

public void replaceWith(T o,
                        T with)
Замещает один узел другим, при этом никакого перемещения под-деревьев не происходит. Узлы, конечно, должны быть уникальными (Быстро)

Parameters:
o - узел, которые замещаем
with - узел, которым замещаем

get

public T get(T o)
Возвращает элемент дерева

Parameters:
o - элемент
Returns:
элемент дерева

hasChildren

public boolean hasChildren(T o)
Проверяет наличие потомков для узла

Parameters:
o - узел
Returns:
TRUE - есть потомки, FALSE - нет

moveTree

public void moveTree(T from,
                     T to)
Перемещает ветку дерева из одного узла в другой

Parameters:
from - начальный узел
to - конечный узел

iterator

public java.util.Iterator<T> iterator()
Возвращает итератор

Returns:
итератор

getCommonNodes

public java.util.List<T> getCommonNodes(T a,
                                        T b)
Возвращает общие элементы двух деревьев

Parameters:
a - одно дерево
b - другое дерево
Returns:
список общих элементов

getDiffNodes

public java.util.List<T> getDiffNodes(T a,
                                      T b)
Возвращает разные элементы двух деревьев

Parameters:
a - одно дерево
b - второе дерево
Returns:
список разных элементов

isChildOf

public boolean isChildOf(T child,
                         T parent)
Проверяет является ли один узел дочерним для другого

Parameters:
child - дочерний
parent - родительский
Returns:
TRUE - является, FALSE - не является

isParentOf

public boolean isParentOf(T parent,
                          T child)
Проверяет является ли один узел родительским для другого

Parameters:
child - дочерний
parent - родительский
Returns:
TRUE - является, FALSE - не является

addAll

public boolean addAll(T to,
                      java.util.List<T> c)
Добавляет все элементы одного дерева во второе

Parameters:
to - куда добавляем
c - откуда добавляем
Returns:
TRUE если все прошло успешно

getSiblings

public java.util.List<T> getSiblings(T o)
Возвращает элементы одного уровня

Parameters:
o - элемент, для которого возвращаем узлы
Returns:
список узлов


Copyright © 2002-2009 TrackStudio, Ltd. All Rights Reserved.