Студопедия
Случайная страница | ТОМ-1 | ТОМ-2 | ТОМ-3
АвтомобилиАстрономияБиологияГеографияДом и садДругие языкиДругоеИнформатика
ИсторияКультураЛитератураЛогикаМатематикаМедицинаМеталлургияМеханика
ОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРелигияРиторика
СоциологияСпортСтроительствоТехнологияТуризмФизикаФилософияФинансы
ХимияЧерчениеЭкологияЭкономикаЭлектроника

Линейные динамические структуры.

Читайте также:
  1. a) Магнитосвязанные линейные индуктивности.
  2. А) Аэродинамические характеристики здания
  3. Выбор орг.структуры.
  4. Динамические диски
  5. Динамические и статистические закономерности в природе
  6. ДИНАМИЧЕСКИЕ И СТАТИСТИЧЕСКИЕ ЗАКОНОМЕРНОСТИ В ПРИРОДЕ.
  7. Динамические и статистические законы

 

Динамическая структура имеет следующие основные признаки:

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

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

Часто динамические структуры физически представляются в форме связных списков.

Связный список – такая структура, элементами которой служат записи с одним и тем же форматом, связанные друг с другом с помощью указателей, хранящихся в самих элементах списка.

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

Логическая структура может быть изображена так:

 
 

 


Указатель
данные
Æ
данные
Указатель
данные

 

 

Æ -пустой указатель, означает конец списка.

Физическая структура списка может быть такой:

 

 
 

 

 


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

 

Логическая структура двусвязного списка:

 

 


 

       
 
   
 

 


В первой записи пустым является обратный указатель, а в последней – прямой.

В этом случае доступ к списку возможен как с начала списка, так и с его конца.

Включение списка и исключения элемента из списка осуществляется путем корректировки указателей.

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

 

 


В этом случае значение L2 записывается в поле указателя включаемой записи значение поля указанной записи, после которого включается новый элемент, изменяется на LN,Þ,окончательная логическая структура будет следующей:

 
 

 

 


Исключение из списка может быть так:

 
 

 


В этом случае поле указателя записи, после которого удаляется элемент изменяется на значение адреса, следующего за исключаемым элемента списка (L2®L3). Оконченная логическая структура обновленного списка:

 
 

 

 


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

К таким структурам приводит экономное представление разреженных матриц.

 

 


A1       A2   A3
    A4     A5  
  A6   A7      

 

 

Описание очередной строки матрицы º количество ненулевых элементов.

Указатели списка значений элементов º адрес списка значений элементов.

 

 
 

 


Получим следующую логическую структуру разреженной матрицы:

 

 


 

 
 

 


Дата добавления: 2015-12-08; просмотров: 118 | Нарушение авторских прав



mybiblioteka.su - 2015-2024 год. (0.008 сек.)