^Примеры упорядоченных корневых деревьев
Черт. 13
Метод, использованный здесь для представления структур корневых деревьев, тесно связан с точкой зрения пользователя на данные, а не с общепринятым машинным представлением древовидных структур, которое соответствует бинарному дереву (см. черт. 14 и 16) .
Метки полей служат в качестве идентификаторов узлов (т.е. полей данных). Структура дерева должна быть описана двумя частями информации:
упорядоченные пары идентификаторов узлов (меток полей) общей структуры в порядке сверху вниз от исходного к порожденному;
упорядоченный список идентификаторов узлов (меток полей) в последовательности прямого обхода.
Общая структура логической записи может быть деревом, как показано на черт. 14.
Общая структура логической записи
Она имеет набор упорядоченных пар меток полей RH, НЕ, ЕА, ЕВ, HF, HG, GC, GD, где R- метка поля уникального идентификатора записи, 0 ... 1.
Последовательность прямого обхода меток полей этой структуры есть - RHEABFGCD и каждый узел употребляется однократно.
Характерный пример предыдущей общей структуры, имеющей множество случаев употребления полей данных с одной и той же меткой поля, представлен на черт. 15
Пример дерева данных пользователя
Н(1) Н (2) Н(3)
F (l) G(1) Е (2) Е (3) G (2) Е (4) F (2) F (3)
А(1) В(1) D(1) D(2) D(3) В (2)
Черт. 15
где R является меткой поля уникального идентификатора записи, а упорядоченные индексы (в скобках) для повторяющихся меток полей добавлены для ясности. Последовательность прямого обхода будет - RH(1) Е(1) А (1) B(l) F(l) G(l) D(l) Н(2) Е(2) Е(3) G(2) D (2) D(3) Н(3) Е(4) В(2) F(2) F(3), которую можно записать без индексов в скобках, не потеряв смысла. Отметим, что только корневой узел R уникален, а поля Н, Е, А и т.д. могут встретиться несколько раз, и в этом случае они обозначены повторением одной и той же метки ПОЛЯ.
Последовательность прямого обхода обычно объединяется с информацией о связях, чтобы представить структуру дерева. В большинстве случаев используется соответствующее бинарное дерево. Это бинарное дерево имеет ту же последовательность прямого обхода, что и упорядоченное дерево, и связь с первым поддеревом узла образует левостороннюю связь в бинарном дереве, а все смежные узлы одного уровня соединены по порядку правосторонними связями между себе подобными. Эти новые связи легко выводятся из списка пар меток полей и последовательности прямого обхода. Пользователь может затем создавать все, что требуется его системе соглашением о связях.
Алгоритм, который образует лево- и правосторонние связи соответствующего бинарного дерева, приведен ниже, где общее дерево данного приложения использовано в качестве примера.
АЛГОРИТМ L. Дано, что Р (q) является бинарным отношением на наборе узлов, q выражает направленные допустимые связи между узлами, а Т (q) - последовательность прямого обхода дерева или группы деревьев.
Построить L и R векторы индексов в Т, выражающие лево- и правосторонние связи соответствующего бинарного дерева:
Примечание. „-Е” читать как ,,не элемент из” а ,, II ” — как „соединяется с”.
L0 [ Инициализировать] ш -►число пар в Р п *- число узлов в Т
S «- 0, рабочий стек, содержащий индексы в Т узлов пути от корня к узлу, Т (S (j)).
L+-0
х R-0
L1 [ Установить стек на корневой узел] j *- 1, S(l) +- 1
L2 [ Установить индекс узла на корневой узел] і«- 1
L3 [ Продвинуть к следующему узлу] і *- і + 1
L4 [ Проверить на заполнение Т] if i> и end
L5 І Проверить парный узел стека и і-й узел] if T(S(j)) II T(i) - Е Р go to L8
L6 ] Запомнить левую связь для узла стека] L(S(j)) *- і
L7 [ Добавить і-й узел в стек] j j +1, S(j)«- і, go to L3
L8 [ Проверить парный предпоследний узел стека и і-й узел]
if T(S(j - 1)) II T(i) - Е Р go to LI 1
L9 [ Запомнить правую связь для узла стека] R(S(j)) «- і
LIO I Восстановить узел стека] S(j)«- і, go to L3
Lil {Вернуться к низшему узлу в пути] j *-j - 1
L12 [ Проверить узел на разрыв (новое дерево) ] if j = 0 go to L9
LI3 [ Проверить повторно новую пару узлов] go to L8
Пример.
Р: RH, |
НЕ, |
ЕА, |
ЕВ, |
HF, |
GC, |
GD, |
HG, |
j: 1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 9 |
Т: R |
Н |
Е |
А |
В |
Г |
G |
С D |
L: 2 |
3 |
4 |
0 |
0 |
0 |
8 |
0 0 |
R: 0 |
0 |
6 |
5 |
0 |
7 |
0 |
9 0 |
Алгоритм действует для корневых ориентированных деревьев с или без повторяющихся меток полей в узлах. Он обрабатывает упорядоченный набор деревьев. Ветвь „истинно” в L12 может быть установлена на ошибку, если требуется ограничить обработку для деревьев.
На черт. 16 представлено соответствующее бинарное дерево для упорядоченного корневого дерева, показанного на черт. 14*.
Бинарное дерево, соответствующее корневому дереву,
приведенному на черт. 14*
ПРИЛОЖЕНИЕ 1
Справочное
СПИСОК ОПЕЧАТОК И НЕТОЧНОСТЕЙ В АНГЛИЙСКОМ
ОРИГИНАЛЕ ИСО 8211-85
Пункт, чертеж |
Напечатано |
Должно быть |
* |
|
|
П. 5.І последнее приме- |
(see 7.1.4) |
(see 7.5) |
чание |
|
|
Черт. 2 |
Не указана длина для поля |
5 |
Черт. 2 и 12 |
„Base address of data descriptive area” Data description of |
Description of |
|
record identifier field |
record identifier field |
Черт. 2 (стр. 5, ссылка |
level 2 |
level 3 |
на черт. 12) и черт. 12 (наименование) |
|
|
Черт. 2 (стр. 6): заголовок; |
. . . Data descriptive fields |
. . . User data field |
ведущая метка |
Base address of data area |
Base address of user data area |
Черт. 4 (RP 12) |
Base address of data |
Base address of data descrip- |
Черт. 4 (RP 17) |
Code character set indicator |
tive area Extended character "ri indi- |
П. 5.2.1.2 |
... in clause 8 |
cator ... in clause 0 |
|
. . . (see 5.2.3.1.2) |
. . . (see 5.2.3.1.3) |
П. 5.2.1.7 |
. . . (see . . . 7.1.3) |
. . . (see . . . 7.2) |
П. 5.2.1.9 |
. . . (see 7.1.1) |
. . . (see 7.2) |
|
. . . (see 7.1.2) |
. . . (see 7.3) |
Черт. 6 и 11 |
— |
і = 1 . . . n |
П. 5.2.3.1.1 |
. . . title control field |
. . . file control field |
(второе предложение) |
|
|
Черт. 8 (наименование) |
DR leader schematic |
DR schematic |
Черт. 9 (RP12) |
Base address of data |
Base address of user data area |
ГІ. 5.3.2.3 |
. . . data descriptive area . . . |
. . . user data area ... |
(третье предложение) |
|
|
Табл. 2 |
Общий заголовок таблицы |
Общий заголовок исключить |
і |
|
Заголовок „Relative position” |
П. 6.2.3.3 |
. . . (see 7.1.4) |
заменить на „Relative position of field controls” . . . (see 7.6) |
Приложение А, |
... of annex D |
... of annex C |
п. А.1.3 |
|
|
Приложение С, |
... in figure 15 |
... in figure 14 |
черт. 16 (наименование) |
|
|
ПРИЛОЖЕНИЕ 2
Справочное
АЛФАВИТНЫЙ УКАЗАТЕЛЬ ТЕРМИНОВ НА РУССКОМ ЯЗЫКЕ
И ИХ ЭКВИВАЛЕНТЫ НА АНГЛИЙСКОМ ЯЗЫКЕ
Т ермин |
Пункт |
Базовый адрес данных Base address of data Байт » Byte Буквенно-цифровой символ Alphanumeric character Ведущая метка Leader Векторная метка Vector label Декартова метка Cartesian label Длина записи Record length Заголовок файла File title Запись данных (ЗД) Data record (DR) Запись описания данных (ЗОД) Data descriptive record (DDR) Иерархия; иерархическая структура Hierarchy; hierarchical structure Логическая запись; запись Logical record;record Местоположение Location Метка Label Метка поля Tag Описатель массива Array descriptor Относительная позиция (ОП) Relative position (RP) Отображать То map План статьи Entry map Поле битов Bit field Поле переменной длины Variable - length field Последовательность прямого обхода Preorder traversal sequence Пусто NuU |
4.3 4.5 4.1 4.26 4.37 4.6 4.32 4.21 4.11 4.10 4.22 4.28 4.27 4.25 4.34 4.2 4.33 4.29 4.17 4.4 4.36 4.31 4.30 |
Т ер мин |
Пункт |
Разделитель Delimiter |
4.13 |
Разделитель поля (РЗ) Field terminator (FT) |
4.19 |
Разделитель элементов (РЭ) Unit terminator. (UT) |
4.35 |
Составное поле данные Compound data field |
4.8 |
Справочник Directory |
4.14 |
Статья справочника Directory entry |
4.15 |
Строка битов в символьном режиме Character mode bit string |
4.7 |
Структура с разделителями Delimited structure |
4.12 |
Управляющий символ АР2 Escape character, ESC |
4.18 |
Уровень обмена; уровень Interchange level; level |
4.23 |
Файл File |
4.20 |
Файл описания данных (ФОД) Data descriptive file (DDF) |
4.9 |
Формат обмена Interchange format |
4.24 |
Элементарный Elementary |
' 4.16 |
ИНФОРМАЦИОННЫЕ ДАННЫЕ
ИСПОЛНИТЕЛИ
М.М. Ефимова; А.А. Мкртумян; О.А. Антошкова; Ю.А. Васильев; Н.А. Чельцо- ва; В.И. Федосимов
Постановлением Государственного комитета СССР по стандартам от 27.09.89 № 2942 стандарт Совета Экономической Взаимопомощи СТ СЭВ 6366—8$ „Системы обработки информации. Спецификация файла описания данных для обмена информацией”, в качестве которого непосредственно применен международный стандарт ИСО 8211—85, введен в действие непосредственно в качестве государственного стандарта СССР с 01.07.90
Срок проверки — 1995 г.; периодичность проверки — 5 лет
ССЫЛОЧНЫЕ НОРМАТИВНО-ТЕХНИЧЕСКИЕ ДОКУМЕНТЫ
Раздел, подраздел, пункт, в котором приведена ссылка |
Обозначение международного стандарта |
Обозначение соответствующего отечественного нормативно-технического документа |
0; 3; 4.1; 4.19; 4.35; 5.2.1.9; 6.2.1; 7.1; |
|
|
приложения А; В |
ИСО 646 |
|
1; 3; |
ИСО 1001 |
|
3; 4.18; 5.2.1.4; 7.1; приложения А; В |
ИСО 2022 |
ГОСТ 27466-88 |
1; 3 |
ИСО 4 341 |
|
1; 3 |
ИСО 6093 |
— |
і; з |
ИСО 7665 |
СОДЕРЖАНИЕ
0. Введение 3
■ Назначение и область применения 5
Соответствие 5
Ссылки 6
Термины и определения 6
Файл обмена . 9
Описание типов и структур данных пользователя 22
Расширения набора кодированных символов 30
Приложение А. Руководство по применению 32
Приложение В. Примеры поля данных . 36
Приложение С. Модель ФОД и структура логической записи 39
Приложение 1. Список опечаток и неточностей в английском оригинале ИСО 8211-85 42
Приложение 2. Алфавитный указатель терминов на русском языке и их эквиваленты на английском языке 43
Редактор Огурцов В.П.
Технический редактор Власова О.Н.
Корректор Прокофьева А.В.
Сдано в набор 16.10.89 Подп. в печ.25.12.89 3,0 печ. л. 3,0усл. кр.-отт. 3,36 уч.-изд. л.
Тираж 11000 экз. Цена 15 к. Зак. 23
Ордена „Знак Почета” Издательство стандартов, 123840, Москва,ГСП,
Новопресненский пер., 3
Набрано в Издательстве стандартов на НПУ
Вильнюсская типография Издательства стандартов
Вильнюс, ул. Даряус и Гирено, 39
1)Алфавитный указатель терминов на русском языке и их эквиваленты на английском языке приведены в приложении 2.