Главная » Java, Структуры данных и алгоритмы » Tree Interface в Java

0

Абстрактный тип данных «дерево» (tree ADT) может использоваться для определения Java-интерфейсов, описывающих методы, реализуемые каждым деревом. Вместо того чтобы включать три описанные группы методов напрямую, вначале отделим относящиеся непосредственно к структуре дерева методы от общих методов, а затем разграничим методы доступа и запросов и методы обновления. Полученный в результате набор интерфейсов показан фрагментами кода 6.1-6.2. Кроме того, интерфейс InspectableContainer расширен (см. рис. 5.11) дополнительным методом isEmpty(). Однако заметим, что, согласно приведенному определению дерева, этот метод должен всегда возвращать «false», поскольку дерево не может быть пустым (имеется хотя бы один узел — корень).

public interface InspectablePositionalContainer extends InspectableContainer { // методы доступа

/** возвращают позиции контейнеров 7 public Positionlterator positions();

}

9 Зак 2456

public interface PositionalContainer

extends InspectablePositionalContainer { // методы обновления

Г* меняет местами элементы двух узлов 7 public void swapElements(Position v, Position w); Г* замещает и возвращает элемент узла 7 public Object replaceElement(Position v, Object e);

}

public interface InspectableTree

extends InspectablePositionalContainer {

// методы доступа

Г* возвращает корень дерева 7

public Position root();

Г* возвращает родительский узел 7 ‘

public Position parent(Position v);

/** возвращает дочерние элементы узла 7

public Position Iterator children(Position v);

// методы запроса

Г* проверяет, является ли узел составным 7 public boolean islnternal(Position v); /** проверяет, является ли узел простым 7 public boolean isExternal(Position v); Г* проверяет, является ли узел корнем дерева 7 public boolean isRoot(Position v);

}

Фрагмент кода 6.1. Интерфейсы InspectablePositionalContainer, PositionalContainer и InspectableTree. Подчеркиваем, что InspectablePositionalContainer наследует из InspectableContainer методы size(), isEmptyO и elements()

public interface Tree extends InspectableTree, PositionalContainer {

}

Фрагмент кода 6.2. Интерфейс Tree. Дополнительно можно добавить методы обновления, если того потребует ситуация. Эти методы не включены в интерфейс, хотя он и представляет собой комбинацию из двух интерфейсов

Источник: Гудрич М.Т. Г93 Структуры данных и алгоритмы в Java / М.Т. Гудрич, Р. Тамассия; Пер. с англ. A.M. Чернухо. — Мн.: Новое знание, 2003. — 671 е.: ил.

По теме:

  • Комментарии