ЛЕКЦИЯ 6. ДЕК. РАЗРЕЖЕННЫЕ МАТРИЦЫ



 

Цель лекции.

1. Рассмотреть принципы реализации дека.

2.Ознакомиться с основными принципами организации данных для хранения и работы с разреженными матрицами,

Основные рассматриваемые вопросы:дек, матрицы с математическим описанием местоположения элементов, Матрицы со случайным расположением элементов.

Продолжим рассмотрение динамических структур.

Дек - это структура данных, представляющая собой последовательность элементов, в которой можно добавлять и удалять в произвольном порядке элементы с только с двух сторон. Первый и последний элементы дека соответствуют входу и выходу дека.

 

 


 

Выделяют ограниченные деки:

- дек с ограниченным входом - из конца дека можно только извлекать элементы;

- дек с ограниченным выходом - в конец дека можно только добавлять элементы.

Данная структура является наиболее универсальной из рассмотренных выше линейных структур. Накладывая дополнительные ограничения на операции с началом и/или концом дека, можно осуществлять моделирование стека и очереди.

Дек также можно реализовывать как статическую структуру данных в виде одномерного массива, а можно как динамическую структуру - в виде линейного списка

Поскольку в деке, как и в очереди, осуществляется работа с обоими концами структуры, то целесообразно использовать те же подходы к организации дека, что применялись и для очереди

Описание элементов дека аналогично описанию элементов линейного двунаправленного списка, где DataType является типом элементов дека. Поэтому здесь приводить его не будем. Но, как и для очереди, введем дополнительно два указателя на начало и конец дека:

Основные операции, производимые с деком:

- добавить элемент в начало;

- добавить элемент в конец;

- извлечь элемент из начала;

- извлечь элемент из конца;

- очистить дек;

- проверка пустоты дека.

 


 

 

Применение  динамических структур данных рассмотрим на примере организации

разреженных матриц.

 

Разреженные матрицы

 

Разреженная матрица - двухмерный массив, большинство элемен­тов которого равны между собой, так что хранить в памяти достаточно лишь небольшое число значений, отличных от основного (фонового) значения остальных элементов.

Различают два типа разреженных матриц:

1) матрицы, в которых местоположения элементов со значениями,
отличными от фонового, могут быть математически описаны;

2) матрицы со случайным расположением элементов.

В случае работы с разреженными матрицами вопросы размещения их в памяти реализуются с учетом их типа.

 

Матрицы с математическим описанием местоположения элементов

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

Элементы, значения которых являются фоновыми, называют нуле­выми, а элементы, значения которых отличны от фонового, называют ненулевыми. Но необходимо помнить, что фоновое значение не всегда равно нулю.

Ненулевые значения хранятся, как правило, в одномерном массиве (векторе), а связь между местоположением в разреженной матрице и в новом, одномерном, описывается математически с помощью формулы, преобразующей индексы матрицы в индексы вектора.

На практике для работы с разреженной матрицей разрабатываются функции:

1) для преобразования индексов матрицы в индекс вектора;

2) для получения значения элемента матрицы из ее упакованного представления по двум индексам (строка, столбец);

3) для записи значения элемента матрицы в ее упакованное представление по двум индексам.

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


Дата добавления: 2018-05-02; просмотров: 847; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!