Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву
Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Элементы заголовков в списках; нелинейные связные структуры.Содержание книги
Похожие статьи вашей тематики
Поиск на нашем сайте Элементы заголовков в списках Для создания списка с заголовком в начало списка вводится дополнительный элемент, который может содержать информацию о списке.
Нелинейные связанные структуры Двусвязный список может быть нелинейной структурой данных, если вторые указатели задают произвольный порядок следования элементов.
LST1 - указатель на начало первого списка (ориентированного указателемями PTR1). Он линейный и состоит из 5-и элементов. Второй список образован из этих же самых элементов, но в произвольной последовательности. Началом 2-го списка является 3-й элемент, а концом 2-ой элемент. В общем случае элемент списочной структуры может содержать сколь угодно много указателей, то есть может указывать на любое количество элементов. Можно выделить 3 признака отличия нелинейной структуры: 1) Любой элемент структуры может ссылаться на любое число других элементов структуры, то есть может иметь любое число полей-указателей. 2) На данный элемент структуры может ссылаться любое число других элементов этой структуры. 3) Ссылки могут иметь вес, то есть подразумевается иерархия ссылок. Пример моделирования с помощью нелинейного списка Пусть имеется дискретная система, в графе состояния которой узлы - это состояния, а ребра - переходы из состояния в состояние.
Входной сигнал в систему это X. Реакцией на входной сигнал является выработка выходного сигнала Y и переход в соответствующее состояние. Граф состояния дискретной системы можно представить в виде двусвязного нелинейного списка. При этом в информационных полях должна записываться информация о состояниях системы и ребрах. Указатели элементов должны формировать логические ребра системы Для реализации вышесказанного: 1) должен быть создан список, отображающий состояния системы (1, 2, 3); 2) должны быть созданы списки, отображающие переходы по ребрам из соответствующих состояний. Реализация графа в виде нелинейного списка можно представить рисунка ниже:
В общем случае при реализации многосвязной структуры получается сеть.
Понятие рекурсивных структур данных. Деревья, их признаки и представления. Рассмотрим рекурсивные алгоритмы и рекурсивные структуры данных. Рекурсия - процесс, протекание которого связано с обращением к самому себе (к этому же процессу). Пример рекурсивной структуры данных - структура данных, элементы которой являются такими же структурами данных
Деревья Дерево - нелинейная связанная структура данных Дерево характеризуется следующими признаками: - дерево имеет один элемент, на который нет ссылок от других элементов. Этот элемент называется корнем дерева; - в дереве можно обратиться к любому элементу путем прохождения конечного числа ссылок (указателей); - каждый элемент дерева связан только с одним предыдущим элементом. Любой узел дерева может быть промежуточным либо терминальным (листом). На рисунке промежуточными являются элементы M1, M2; листьями - A, B, C, D, E. Характерной особенностью терминального узла является отсутствие ветвей.
Высота дерева - это количество уровней дерева. У дерева на рисунке высота равна двум.
Количество ветвей, растущих из узла дерева, называется степенью исхода узла (на рисунке для M1 степень исхода 2, для М2 - 3).
Для описания связей между узлами дерева применяют также следующую терминологию: М1 - “отец” для элементов А и В. А и В - “сыновья” узла М1. Деревья могут классифицироваться по степени исхода: 1) если максимальная степень исхода равна m, то это - m-арное дерево; 2) если степень исхода равна либо 0, либо m, то это - полное m-арное дерево; 3) если максимальная степень исхода равна 2, то это - бинарное дерево; 4) если степень исхода равна либо 0, либо 2, то это - полное бинарное дерево. Представление деревьев
Наиболее удобно деревья представлять в памяти ЭВМ в виде связанных списков. Элемент списка должен содержать информационные поля, в которых могут содержаться значение ключа узла и другая хранимая информация, а также поля-указатели, число которых равно степени исхода.
Бинарные деревья Согласно представлению деревьев в памяти ЭВМ каждый элемент бинарного дерева является записью, содержащей четыре поля. Значения этих полей - соответственно ключ записи, текст записи, ссылка на элемент влево – вниз и ссылка на элемент вправо – вниз. Бинарные деревья являются наиболее используемой разновидностью деревьев. Формат элемента бинарного дерева представлен на рисунке ниже
Функция создания элемента бинарного дерева V = MakeTree (key, rec) V - указатель на создаваемый элемент динамической структуры Алгоритм функции Maketree(key,rec) p = getnode r (p) = rec k (p) = key v = p left (v)= nil right (v) = nil return Операция V = MakeTree(Key, Rec) - создает элемент (узел дерева) с двумя указателями и двумя полями (ключевым и информационным).
Упорядочное бинарное дерево В упорядоченном бинарном дереве левый сын имеет ключ меньший, чем у отца, а значение ключа правого сына больше значения ключа отца. Построим бинарное дерево из следующих элементов: 50, 46, 61, 48, 29, 55, 79.
Получено идеально сбалансированное дерево - дерево, в котором левое и правое поддеревья имеют уровни, отличающиеся не более чем на единицу.
|
||
|
Последнее изменение этой страницы: 2017-02-05; просмотров: 674; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 216.73.217.21 (0.007 с.) |