Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

СД типа запись (прямое декартово произведение)

 

Запись – последовательность элементов, которые в общем случае могут быть одного типа. На логическом уровне СД типа запись можно записать следующим образом:

type Т = Record

S1: T1;

S2: T2;

……..

Sn: Tn;

End;

Здесь: Ti изменяется при i = 1, 2, …, n; S1, …, Sn – идентификаторы полей; Т1, …, Tn – типы данных. Если Ti также является в свою очередь записью, то Si – иерархическая запись.

Если DT1 – множество значений элементов типа Т1, DТ2 – множество значений элементов типа Т2, …, DТn – множество значений элементов типа Тn, то DT – множество значений элементов типа Т будет определяться с помощью прямого декартова произведения: DT = DT1 ´ DT2 ´ … ´ DТn. Другими словами, множество допустимых значений СД типа запись:

Допустимые операции для СД типа запись аналогичны операциям для СД типа массив.

Дескриптор СД типа запись включает в себя: условное обозначение, название структуры, количество полей, указатель на первый элемент (в случае прямоугольной СД), характеристики каждого элемента, условные обозначения типа каждого элемента, размер слота, а также смещение, необходимое для вычисления адреса.

Вообще, смещение – это адрес компоненты (поля) ri относительно начального адреса записи r. Смещение вычисляется следующим образом:

ki = S1 + S2 + … + Si-1, i=1,2, …,n

где Si – размер слота каждого элемента записи.

Дескриптор СД типа запись, в отличие от дескриптора СД типа массив, зависит от количества элементов записи.

 

СД типа таблица.

 

Таблица – последовательность записей, которые имеют одну и ту же организацию. Такая отдельная запись называется элементом таблицы. Чаще всего используется простая запись. Таким образом, таблица – это агрегация элементов. Если последовательность записей упорядочена относительно какого-либо признака, то такая таблица называется упорядоченной, иначе – таблица неупорядоченная.

Классификация СД типа таблица:

 

СД типа таблица
 
неупорядоченная таблица упорядоченная таблица хеш-таблица
 
как отображение на массив как отображение на список  

       
   
 
 

 


Если один элемент d i, то кортеж – это <d 1, d 2, …, d n>, причем D Ti Î d i. Множество значений элементов типа Т (множество допустимых значений СД типа таблица) будет определяться с помощью прямого декартова произведения:

DT = DT1 ´ DT2 ´ … ´ DТn, причем D Ti Î <d 1, d 2, …, d n>.

Сам же элемент таблицы можно представить в виде двойки <K, V>, где К – ключ, а V – тело элемента. В качестве ключа может быть разное число полей, которые определяют этот элемент. Ключ используется для операции доступа к элементу, так как каждый из ключей уникален для данного элемента. Таким образом, таблица является совокупностью двоек <K, V>.

На логическом уровне элемент СД типа таблица описывается следующим образом:

Type Element = record

Key: integer;

{описание остальных полей}

end;

При реализации таблицы как отображения на массив ее описание выглядит так:

Tabl = array [0.. N] of Element

Во время выполнения программы количество элементов может меняться. Структура, в которой изменяется количество элементов во время выполнения программы, называется динамической. Если рассматривать динамическую структуру как отображение на массив, то такая структура называется полустатической.

Перед тем как определить операции, которые можно выполнять над таблицей рассмотрим классификацию операций:

1. Конструкторы – операции, которые создают объекты рассматриваемой структуры.

2. Деструкторы – операции, которые разрушают объекты рассматриваемой структуры. Признаком этой операции является освобождение памяти.

3. Модификаторы – операции, которые модифицируют соответствующие структуры объектов. К ним относятся динамические и полустатические модификаторы.

4. Наблюдатели – операции, у которых в качестве элемента (входного параметра) используются объекты соответствующей структуры, а возвращают эти операции результаты другого типа. Таким образом, операции-наблюдатели не изменяют структуру, а лишь дают информацию о ней.

5. Итераторы – операторы доступа к содержимому объекта по частям в определенном порядке.

Операции над таблицей:

1. Операция инициализации (конструктор).

2. Операция включения элемента в таблицу (модификатор).

3. Операция исключения элемента из таблицы (модификатор).

4. Операции-предикаты:

а) таблица пуста / таблица не пуста (наблюдатель)

б) таблица переполнена / таблица не переполнена (наблюдатель).

5. Чтение элемента по ключу (наблюдатель).

 

<== предыдущая лекция | следующая лекция ==>
СД типа массив | Временная сложность алгоритмов
Поделиться с друзьями:


Дата добавления: 2014-01-07; Просмотров: 823; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.025 сек.