Автор: Марья Иванова, 05 Октября 2010 в 16:39, курсовая работа
Впервые понятие «дерево» ввел физик Густав Кирхгофф в 1847 году. Будучи студентом Кенигсбергского университета, он сформулировал законы, управляющие течением тока в электрических сетях. Сети проводов могут быть рассмотрены, как графы. Уравнения, которые вытекают из законов Кирхгоффа, не являются не зависимыми, и Кирхгофф использовал деревья для получения независимого подмножества уравнений.
В последние десять лет компьютерная наука столкнулась с тем, что деревья обеспечивают удобные структуры для хранения и исправления определенных типов данных – так называемых иерархических баз данных.
Корневые деревья интенсивно используются в информатике. Деревья являются самым распространенным классом графов, применяемых в программировании. Наиболее важные применения деревьев этого типа связаны с представлением и сортировкой данных. Некоторые другие важные применения корневых деревьев в компьютерной науке связаны с представлением алгебраических выражений.
Обычным и важным действием при обработке данных является сортировка данных в соответствии с определенным критерием. Природа данных и цели их использования определяют особенности сортировки. Чаще всего приходится иметь дело с числовой или буквенной сортировкой. Предположим, что отношение представляет собой тотальный порядок, то есть такой порядок, при котором для любой пары элементов возможно сравнение: либо а R b, либо b R а, либо и то и другое.
Введение…………………………………………………………………………..3
Глава I. Деревья, используемые в информатике………………………………5
Корневые деревья в информатике …………………………………..5
Двоичные деревья …………………………………………………….8
Виды двоичных деревьев……………………………………………..9
Глава II. Двоичные деревья в информатике…………………………………..10
Сортировка данных
Метод дерева сортировки ……………………………………10
Метод кучи……………………………………………………...16
Представление алгебраических выражений с помощью двоичных деревьев………………………………………………………………18
Заключение……………………………………………………………………...20
Библиографический список ………………………………………………….23
Министерство образования и науки РФ
Государственное образовательное учреждение высшего
профессионального
образования «Красноярский государственный
педагогический университет им. В.П.
Астафьева»
Кафедра
алгебры
ДВОИЧНЫЕ ДЕРЕВЬЯ И ИХ РОЛЬ В ИНФОРМАТИКЕ
(курсовая
работа)
Выполнил: Д.Н.Ростовцева,
Студентка 42 группы
Научный руководитель:
к.ф.–м.н.,
А.Н. Руцкий
Красноярск, 2010
Содержание
Введение…………………………………………………………
Глава I. Деревья, используемые в информатике………………………………5
Глава II. Двоичные деревья в информатике…………………………………..10
Заключение……………………………………………………
Библиографический
список ………………………………………………….23
Введение
Впервые понятие «дерево» ввел физик Густав Кирхгофф в 1847 году. Будучи студентом Кенигсбергского университета, он сформулировал законы, управляющие течением тока в электрических сетях. Сети проводов могут быть рассмотрены, как графы. Уравнения, которые вытекают из законов Кирхгоффа, не являются не зависимыми, и Кирхгофф использовал деревья для получения независимого подмножества уравнений.
В последние десять лет компьютерная наука столкнулась с тем, что деревья обеспечивают удобные структуры для хранения и исправления определенных типов данных – так называемых иерархических баз данных.
Корневые деревья интенсивно используются в информатике. Деревья являются самым распространенным классом графов, применяемых в программировании. Наиболее важные применения деревьев этого типа связаны с представлением и сортировкой данных. Некоторые другие важные применения корневых деревьев в компьютерной науке связаны с представлением алгебраических выражений.
Обычным и важным действием при обработке данных является сортировка данных в соответствии с определенным критерием. Природа данных и цели их использования определяют особенности сортировки. Чаще всего приходится иметь дело с числовой или буквенной сортировкой. Предположим, что отношение представляет собой тотальный порядок, то есть такой порядок, при котором для любой пары элементов возможно сравнение: либо а R b, либо b R а, либо и то и другое.
Допустим А – конечное множество элементов с тотальным порядком, который мы будем обозначать символом ≤. Будем писать а ≤ b и говорить «а меньше или равно b». Предположим, что элементы множества А заданы неупорядоченным списком а1, а2, …, аN и мы хотим отсортировать данный список, то есть получить упорядоченный список s1, s2, …,sN, то есть получить список s1 ≤ s2 ≤ … ≤ sN.
Имеются
много методов получения
Таким образом, основной целью моей работы является: показать применение деревьев в информатике.
Для достижения поставленной цели необходимо решить следующие задачи:
ГЛАВА
I. ДЕРЕВЬЯ, ИСПОЛЬЗУЕМЫЕ
В ИНФОРМАТИКЕ
1.1.
Корневые деревья в
информатике
Многие
приложения теории графов, особенно в
компьютерной науке (информатике), используют
определенные типы деревьев, так называемые
корневые деревья. Корневое дерево – это
дерево, у которого одна специфическая
вершина отличается от всех остальных.
Корневое дерево может быть использовано,
чтобы описать отношение между потомками
человека. Например, типичное генеалогическое
дерево, показывающее потомков прабабушки
Антона (рис. 1).
Корневые
деревья более знакомы в
Некоторые другие важные применения корневых деревьев в компьютерной науке связаны с представлением данных и представлением алгебраических выражений. Структура корневого дерева особенно удобна для данных, где имеются иерархические отношения между наборами данных. Часто для данных, организованных в виде корневого дерева, оказывается возможным обращение к различным подклассам данных с меньшим количеством операций, чем в случае иной иерархической организации структуры данных, например в виде списков.
Определение 1. Корневое дерево – это пара (Т, v*), где Т – дерево и v* Î VT. Специфическая, отличная от других вершин, v* называется корнем дерева. Лист в корневом дереве – это вершина, которая имеет валентность 1 и которая не равна корневой вершине; вершиной решения (или внутренней вершиной) называется вершина, которая не является ни корневой, ни листом.
Название «вершина решения» связано с многоступенчатым процессом принятия решения, при котором решение, сделанное на одной стадии, обуславливают возможные решения, доступные на следующих стадиях. Вершины решения представляют собой точки, в которых должны быть приняты решения.
Определение 2. Пусть (Т, v*) является корневым деревом. Уровень вершины w для дерева Т – это длина (единственного) пути для Т от вершины v* к вершине w. Высотой дерева Т называется максимальный уровень его вершин.
Пусть Т – корневое дерево и пусть р – вершина уровня к > 0, то есть, иначе говоря, мы предполагаем, что р ≠ v*. Так как путь для дерева Т от v* к р является единственным, то из этого следует, что вершина р является смежной для единственной вершины уровня к-1.
Определение 3. Пусть (Т, v*) – корневое дерево, и пусть р – вершина уровня к > 0. Вершина q уровня к-1 и смежная вершине р, называется родителем вершины р. В свою очередь вершина р называется ребенком вершины q, а любая вершина уровня к, смежная к вершине q, называется братом вершины р.
Определение 4. m- арным деревом называется корневое дерево, в котором каждая родительская вершина имеет самое большее m детей, и некоторые родительские вершины имеют ровно m детей.
Определение 5. Корневое дерево высоты h называется совершенным, если все листовые вершины расположены на уровне h.
Пример.
На рисунке 3 корень дерева - v*, листья –
w, n, m, c, s, f, j, z, вершины решений – k, p, e, a,g,
r, d.
Определение 6. Бинарное (двоичное) дерево – это конечное множество узлов, которое либо пусто, либо состоит из корня и двух непересекающихся бинарных деревьев.
Определение 7. Полным бинарным (двоичным) деревом называется дерево, у которого только одна вершина имеет валентность 2, а все остальные вершины имеют валентность 1 или 3. вершины с валентностью 2 называется корнем дерева; вершины с валентностью 3 называются вершинами решения и вершины с валентностью 1 называются листьями.
Пусть Т - полное двоичное дерево с высотой превышающей ноль и с корнем v*. Удаление v* и двух его инцидентных граней порождает два непересекающихся двоичных дерева (двоичный лес), чьи корни – это вершины дерева Т первого уровня. Они называются левым поддеревом и правым поддеревом корня v*. Корни этих поддеревьев называются левым и правым ребенком корня v*, а удаленные грани называются соответственно левой и правой ветками вершины v*. Для каждого из этих поддеревьев, если их высота не меньше 1, могут быть определенны их соответствующие левые и правые поддеревья, и так вдоль всего дерева. Если Т – не является полным двоичным деревом, то его левое или правое поддерево может быть пустым.
Определение 8. Двоичное дерево включает совокупность трех множеств (L, S, R), где L и R – двоичные (или пусты) деревья, а S синглетное множество. Единственным элементом множества S является корень. Элементы L и Rназываются соответственно левым и правым поддеревьями корня.
Такой способ определения двоичных деревьев оказывается чрезвычайно плодотворным для компьютерного представления двоичных деревьев.
1.3.
Виды двоичных деревьев
Процедура
сортировки с помощью дерева использует
специальный вид двоичного
Определение 9. Дерево сортировки – это двоичное дерево Т такое что:
Определение 10. Ниспадающая куча – это двоичное дерево высоты h такая что:
В ниспадающей куче вершины вдоль любого пути, начинающегося с корня, оказываются расположенными в уменьшающемся порядке. Возрастающая куча может быть определена так же, с единственным различием, заключающемся в том, что каждый родитель будет меньше или равен своего ребенка. В возрастающей куче вершины вдоль любого пути начинающегося с корня оказываются расположенными в порядке возрастания.
Информация о работе Двоичные деревья и их роль в информатике