Скачать презентацию Статические структуры данных Множество Вектор Массив Запись Таблица Скачать презентацию Статические структуры данных Множество Вектор Массив Запись Таблица

Статические структуры данных.ppt

  • Количество слайдов: 23

Статические структуры данных Множество Вектор Массив Запись Таблица 1 Статические структуры данных Множество Вектор Массив Запись Таблица 1

Свойства статических структур • Рассматриваемые структуры (множества, векторы массивы, записи, таблицы) характеризуются следующими свойствами: Свойства статических структур • Рассматриваемые структуры (множества, векторы массивы, записи, таблицы) характеризуются следующими свойствами: – Постоянство структуры в течение всего времени ее существования – Смежность элементов и непрерывность области памяти, отводимой сразу для всех элементов структуры – Простота и постоянство отношений между элементами структуры, позволяющие исключить информацию об этих отношениях и хранить ее в компактной форме в дескрипторах. • В силу перечисленных свойств такие элементы называются часто статическими. 2

Вектор • Одна из простейших структур данных, имеющаяся во всех алгоритмических языках • Вектор Вектор • Одна из простейших структур данных, имеющаяся во всех алгоритмических языках • Вектор (одномерный массив) - конечное упорядоченное множество простых данных, или скаляров одного и того же типа, называемых элементами вектора. • Элементы вектора находятся друг с другом в единственно возможном отношении-отношении непосредственного следования. • Строгая упорядоченность элементов вектора позволяет пронумеровать их последовательными целыми числами, которые называются индексами 3 элементов.

Логическая структура вектора • В языках программирования описывается с помощью соответствующих декларативных предложений, полностью Логическая структура вектора • В языках программирования описывается с помощью соответствующих декларативных предложений, полностью определяется числом и типом элементов вектора. • При описании логической структуры вектора ему обычно присваивается имя (идентификатор), указываются минимальное и максимальное значения индекса и, возможно, размер памяти для каждого из элементов. 4

операции над вектором • Операция доступа: – – – принадлежности извлечения, изменения, включения исключения. операции над вектором • Операция доступа: – – – принадлежности извлечения, изменения, включения исключения. • Арифметические операции над векторами: – – сложение вычитание умножение деление • Дополнительные операции: – операции определения нижней и верхней границ индекса по заданному имени вектора, – операция, позволяющая получить описание элемента вектора (например тип и длину). 5

Физическая структура вектора • представляется в машинной памяти последовательностью одинаковых по длине участков памяти, Физическая структура вектора • представляется в машинной памяти последовательностью одинаковых по длине участков памяти, называемых полями или слотами, каждый из которых предназначен для хранения одного элемента вектора. • Слот может иметь размер минимальной адресуемой ячейки памяти или соответствовать целой группе последовательных ячеек памяти. 6

дескриптор • Нередко физической структуре ставится в соответствие дескриптор или заголовок, который содержит общие дескриптор • Нередко физической структуре ставится в соответствие дескриптор или заголовок, который содержит общие сведения о физической структуре. Дескриптор необходим, например в том случае, когда граничные значения индексов элементов массива неизвестны на этапе компиляции. Другие названия дескриптора -допвектор, информационный вектор и определяющий вектор. • Дескриптор состоит из полей, характер, число и размеры которых зависят от той структуры, которой поставлен в соответствие дескриптор. • Кроме того, дескриптор обычно содержит специальное кодовое поле, 7

дескриптор вектора V(-5) V(-4) V(-3) …. . V(3) V(4) Код структуры данных Адрес первого дескриптор вектора V(-5) V(-4) V(-3) …. . V(3) V(4) Код структуры данных Адрес первого слота Нижний индекс (-5) Имя вектора Тип элемента Размер слота Адрес последнего слота Верхний индекс (4) 8

Массив • Массивом называется такой вектор, каждый элемент которого - вектор. В свою очередь, Массив • Массивом называется такой вектор, каждый элемент которого - вектор. В свою очередь, элементы вектора, являющиеся элементами массива, могут быть векторами. • Если массив состоит из векторов, элементами которых являются простые данные (скаляры), то логическая структура такого массива может быть представлена прямоугольной матрицей, у которой первый индекс задает номер строки, а второй номер столбца. 9

Логическая структура массива • В языках программирования описывается с помощью декларативных предложений. • Доступ Логическая структура массива • В языках программирования описывается с помощью декларативных предложений. • Доступ к его любому элементу осуществляется с помощью имени массива и упорядоченного набора индексов, однозначно идентифицирующих элемент. 10

Преобразование логической структуры массива в физическую структуру • на практике обычно используют два способа: Преобразование логической структуры массива в физическую структуру • на практике обычно используют два способа: отображение строками и отображение столбцами. • Преобразование логической структуры массива в физическую структуру реализуется с помощью подходящей функции упорядочения. • Например: B(j 1 , j 2, . . , jn) - произвольный элемент nмерного массива • B(i 1 , i 2 , . . , in)- первый элемент массива • Если длина слота равна 1 -ой ячейке памяти, то адрес произвольного элемента массива равен: • AD (B(j 1 , j 2 , . . . , jn)) = AD(B(i 1 , i 2 , . . . , in) )- 1 im Dm +1 jm Dm , где Dm зависит от способа отображения массива В. • Для ускорения доступа к каждому элементу массива можно заранее вычислить индексные множители 1 Dm для m=1, 2, . . . , n и заполнить их в дескрипторе массива. 11

Дескриптор массива отличается от дескриптора вектора. Например дескриптор трехмерного массива МАТR(2: 3, 4: 6, Дескриптор массива отличается от дескриптора вектора. Например дескриптор трехмерного массива МАТR(2: 3, 4: 6, 1: 5) с элементами целого типа по 2 байта на каждый элемент имеет вид: A-условный код массива MATR-имя массива AD(MATR(2, 4, 1)) адрес начала массива AD(MATR(3, 6, 5)) адрес конца массива 3 -размерность массива Начальное знач. индекса(2, 4, 1) конечное знач. индекса (3, 6, 5) Знач. 30 e 1 D 1 Индекса 10 e 2 D 2 Множит. 2 e 3 D 3 INTEGER тип данных 2 кол-во байтов 12

Вспомогательные дескрипторы для массива • Из примера видно, что вычисление адреса элемента многомерного массива Вспомогательные дескрипторы для массива • Из примера видно, что вычисление адреса элемента многомерного массива может занять много времени, поскольку при этом должны выполняться операции сложения и умножения, число которых пропорционально размерности массива. Операцию умножения можно исключить, если применять следующий метод. • Кроме основного дескриптора организуется несколько уровней вспомогательных дескрипторов, называемых векторами Айлиффа. Каждый вектор Айлиффа определенного уровня содержит указатель Айлиффа следующего, более низкого уровня, а векторы Айлиффа самого нижнего уровня содержат указатели групп элементов отображаемого массива. В этом случае устраняется необходимость выполнения операций умножения при определении адреса элемента массива, приводит в то же время к увеличению суммарного объема 13 памяти, требуемого для представления массива.

Разновидности массива • Разреженный массив - большинство элементов которого равны нулю, так что хранить Разновидности массива • Разреженный массив - большинство элементов которого равны нулю, так что хранить в памяти необходимо лишь небольшое число ненулевых значений остальных элементов. • Подходящей физической структурой разреженного массива является не вектор, а связный список. 14

Запись • Запись- конечное упорядоченное множество элементов, характеризующихся в общем случае различным типом данных. Запись • Запись- конечное упорядоченное множество элементов, характеризующихся в общем случае различным типом данных. Часто элементы записи называются полями. • Запись - такое обобщение понятия вектора (или одномерного массива), при котором не требуется однотипность или однородность. 15

простая запись • Дескриптор записи может содержать: – – – имя записи, число входящих простая запись • Дескриптор записи может содержать: – – – имя записи, число входящих элементов, имена и типы элементов, длины соответствующих полей, указатели значений элементов. • Такая запись называется простой записью. Для нее характерно то, что каждый элемент является простым данным или цепочкой простых данных одного и того же типа. 16

многоуровневая запись • Общим видом записи является такая запись, в которой каждый ее элемент многоуровневая запись • Общим видом записи является такая запись, в которой каждый ее элемент может быть записью более низкого уровня. Такая иерархическая структура записи может содержать произвольное число уровней и поэтому ее называют многоуровневой записью. Строка ведомости Номер Имя Фамилия Инициалы Должность Квалиф Разряд Часы Штат Сверхур. Деньги Праздн. 17

Дескриптор трехуровневой записи с именем ”Строка ведомости” • кроме информации и простой записи, может Дескриптор трехуровневой записи с именем ”Строка ведомости” • кроме информации и простой записи, может содержать сведения об элементах промежуточных уровней и о числе элементов более низкого уровня, подчиненного элементу промежуточного уровня. • REC-признак записи • Указатель REС I строка ведомости 2 REС 5 Номер Имя S 10 Фамилия S 4 2 Инициалы REС Квалификация S Должность I Разряд REС Часы R 4 4 Сверхурочные R 4 Праздничные R 4 Деньги 3 Штатные R 2 18

Таблица • Конечное множество записей, имеющих одну и ту же организацию называется таблицей. • Таблица • Конечное множество записей, имеющих одну и ту же организацию называется таблицей. • Каждая запись входящая в таблицу, называется элементом таблицы. • Таблица представляет собой такое обобщение понятия двухмерного массива, в котором свойство однотипности элементов массива требуется лишь для элементов, расположенных в одном и том же столбце. 19

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

Алгоритмы над статическими структурами • Рассмотрим задачу выполнении различных операций над многочленами в символьной Алгоритмы над статическими структурами • Рассмотрим задачу выполнении различных операций над многочленами в символьной форме (сложение, вычитание, умножение, деление, дифференцирование и т. д. ). • Пусть, например, требуется составить программу вычитания многочлена x 2+3 xy+y 2+y-x из 2 x 2+5 xy+y 2 , 21

Представление многочленов в матричной форме • Если мы ограничим массив пятью строками и пятью Представление многочленов в матричной форме • Если мы ограничим массив пятью строками и пятью столбцами, то показатели степени X и Y не должны превышать значения 4. Тогда массив для представления многочленов будет иметь вид • Имея один алгоритм для преобразования входных данных в массив, представляющих многочлен, а другой для преобразования массива в многочлен, операции сложения, вычитания и т. д. можно свести к сложению и вычитанию элементов этих двух массивов. 2 x 2+5 xy+y 2 xy 0 1 2 3 4 0 0 0 1 0 5 0 0 0 2 2 0 0 3 0 0 0 4 0 0 0 x 2+3 xy+y 2+y-x xy 0 1 2 3 4 0 0 1 1 0 0 1 -1 3 0 0 0 2 1 0 0 3 0 0 0 4 0 0 22 0

Анализ • Здесь очевиден ряд недостатков – массив содержит много нулей – величина показателя Анализ • Здесь очевиден ряд недостатков – массив содержит много нулей – величина показателя степени ограничена. • Возможны альтернативные алгоритмы для представления многочленов и операций над ними на основе других структур. 23