Особенности сооружения опор в сложных условиях: Сооружение ВЛ в районах с суровыми климатическими и тяжелыми геологическими условиями...
Эмиссия газов от очистных сооружений канализации: В последние годы внимание мирового сообщества сосредоточено на экологических проблемах...
Топ:
Методика измерений сопротивления растеканию тока анодного заземления: Анодный заземлитель (анод) – проводник, погруженный в электролитическую среду (грунт, раствор электролита) и подключенный к положительному...
Интересное:
Уполаживание и террасирование склонов: Если глубина оврага более 5 м необходимо устройство берм. Варианты использования оврагов для градостроительных целей...
Как мы говорим и как мы слушаем: общение можно сравнить с огромным зонтиком, под которым скрыто все...
Распространение рака на другие отдаленные от желудка органы: Характерных симптомов рака желудка не существует. Выраженные симптомы появляются, когда опухоль...
Дисциплины:
2021-03-18 | 78 |
5.00
из
|
Заказать работу |
|
|
Динамической структурой называется упорядоченное множество объектов, состав и взаимное расположение которых в процессе выполнения программы может динамически изменяться. Динамические структуры конструируются пользователем с использованием связанной организации памяти и метода хранимого адреса.
Операции по модификации динамических структур:
¨ создание / разрушение структуры
¨ включение объектов в структуру / исключение объектов из структуры
¨ выделение подмножества объектов структуры по определенным признакам
¨ объединение нескольких подмножеств объектов в определенном порядке в единую структуру.
В зависимости от отношения порядка, определенного на множестве объектов, различают линейные и нелинейные структуры данных.
Линейные динамические структуры данных (списки)
Линейной динамической структурой (списком) называется множество объектов (элементов, узлов) S={ si}, i=1,...,n, на котором определены отношения предшествования / следования, причем для любого объекта si, i=2,...,n-1 существует единственный “предшественник” si-1 и единственный “последователь” si+1. Объект s1 не имеет предшественника и является первым элементом списка, объект sn не имеет последователя и является “хвостом” списка. Ситуация n=0 определяет особое состояние: “список пуст”.
Реализация динамической структуры линейного списка на связанной памяти требует включения в структуру каждого его элемента полей для связи с соседними элементами. В зависимости от того, с каким количеством соседних объектов связан данный объект в списке, различаются односвязные, двусвязные и многосвязные списки.
Основные виды списков
|
СТЕК – структура, у которой включение / исключение элементов и доступ к элементам производится на одном конце структуры, называемом верхушкой стека (рис. 19). Для стека характерна дисциплина обслуживания “последним пришел – первым обслужен” (LIFO – Last Input First Output).
Рис. 19. Структура стека
ОЧЕРЕДЬ – структура, у которой включение элемента производится в хвост, а исключение элемента и доступ к элементам выполняются в начале списка (рис. 20). Для очереди характерна дисциплина обслуживания “первым пришел – первым обслужен” (FIFO – First Input First Output).
Рис. 20. Структура очереди
ДЕК (двусторонняя очередь) – операции включения / исключения элементов и доступ к элементам выполняются как в начале, так и в хвосте списка.
СПИСКИ ПРОИЗВОЛЬНОГО ВИДА – операции включения / исключения элементов выполняются в любой точке структуры, возможен доступ к произвольному элементу списка.
Односвязные списки
Каждый элемент односвязного списка содержит одно или несколько информационных полей и единственное поле связи.
Элемент хранения односвязного списка описывается следующим образом:
Type Plist=^List; List= record info: word; link: plist; end; | { указатель на узел списка } { описание узла списка } { информационное поле узла } { поле связи узла } |
Var first: PList; p: PList; x: word; | { указатель на первый узел списка } { вспомогательный указатель } |
На рис. 21 представлен пример структуры односвязного списка.
Рис. 21. Структура односвязного списка
На первый элемент списка указывает указатель first. Если список пуст, то first = nil. Если список не пуст, то к атрибуту любого его элемента (например, первого) можно получить доступ через указатель.
x:=first ^.info; p:=first ^.link; | { значение информационного поля первого элемента } { значение поля связи первого элемента – адрес второго элемента } |
К атрибутам любого элемента списка, кроме первого, возможен дистанционный доступ.
|
x:=first ^.link ^.info; | { значение информационного поля второго элемента } |
Дистанционный доступ ко второму узлу списка эквивалентен следующей последовательности операторов:
p:=first ^.link; x:=p^.info; | { установка вспомогательного указателя на второй узел списка } { значение информационного поля второго узла списка } |
|
|
Папиллярные узоры пальцев рук - маркер спортивных способностей: дерматоглифические признаки формируются на 3-5 месяце беременности, не изменяются в течение жизни...
Адаптации растений и животных к жизни в горах: Большое значение для жизни организмов в горах имеют степень расчленения, крутизна и экспозиционные различия склонов...
Кормораздатчик мобильный электрифицированный: схема и процесс работы устройства...
Состав сооружений: решетки и песколовки: Решетки – это первое устройство в схеме очистных сооружений. Они представляют...
© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!