Извлечения из библиотек Base
В течение всего нашего обсуждения мы неоднократно встречались со ссылками на базовые библиотеки Base, в особенности на библиотеку ядра Kernel, в которой сгруппированы наиболее фундаментальные классы.
Знакомство с такими классами - это хороший способ изучить подробнее метод, получая преимущества от знания примеров широко используемых программных компонентов, зарекомендовавших себя в течение долгого времени и продолжающих использоваться.
Эта страница и следующая - только введение в приложение, фактические тексты классов доступны в электронной форме, облегчающей их просмотр, появляясь на диске, сопровождающем эту книгу.
Детальное представление библиотек дано в [M 1994a], где также описаны теоретические предпосылки - принципы общей таксономии, используемые для классификации основных структур данных в информатике. Некоторые из основных идей обсуждались при расмотрении наследования. |
К наиболее важным классам, чьи концепции обсуждались в предыдущих лекциях и чьи тексты находятся на CD-ROM, относятся:
- ARRAY, описывающий одномерные массивы, основанный на гибком и общем виде этого понятия (в частности, массивы могут динамически изменять размер во время выполнения системы).
- LINKABLE, описывающий элементы списковых структур с одной связью.
- BI_LINKABLE, эквивалент элементов с двумя связями.
- LIST, отложенный класс, представляющий общее понятие списка как "активной структуры данных" с курсором без обязательств конкретного представления. Следующие три классса обеспечивают специальные реализации списка, используя множественное наследование и технику "брака по расчету".
- ARRAYED_LIST, представляющий реализацию списка массивом, чья возможность динамического изменения размера здесь существенно используется.
- LINKED_LIST, представляющий реализацию односвязным списком и внутренне использующий для элементов класс LINKABLE.
- TWO_WAY_LIST, двусвязный список, использующий класс BI_LINKABLE.
- TWO_WAY_TREE, широко использующий реализацию деревьев, основанную на классе TWO_WAY_LIST для представления деревьев, учитывающую сделанное ранее наблюдение в лекции о множественном наследовании. Его суть в том, что при слиянии общих понятий дерева и узла дерева можно полагать, что дерево одновременно является списком и элементом списка.
Все эти классы, представляющие контейнеры, явялются универсальными с единственным родовым параметром, задающим тип элементов.