Программирование. Структура деревьев

Автор работы: Пользователь скрыл имя, 14 Декабря 2010 в 12:17, курсовая работа

Краткое описание

Целью данной курсовой работы является исследование одной из важных разновидностей деревьев – пирамиды.

Для достижения данной цели нужно выполнить следующие задачи:

1.раскрыть понятие дерева;
2.охарактеризовать бинарные (двоичные) деревья;
3.ввести понятие пирамиды;
4.изучить способы реализации пирамиды;
5.реализовать сортировку на основе пирамиды.
Объектом являются нелинейные структуры данных. Предметом исследования курсовой работы выступает одна из разновидностей двоичных деревьев – пирамида.

Содержание работы

Введение 5
1 Динамическая структура данных «Дерево» 6
1.1 Деревья 6
1.1.1 Определение. Основные понятия 6
1.1.2 Классификация деревьев 7
1.2 Двоичные деревья 8
1.2.1 Определение. Основные понятия 8
1.2.2 Программная реализация 8
1.2.3 Основные операции (алгоритмы) 9
1.3 Пирамида 10
1.3.1 Определение. Основные понятия 10
1.3.2 Сортировка на основе пирамиды 11
2 Реализация прикладной задачи с использованием пирамиды 13
2.1 Постановка задачи 13
2.2 Алгоритм решения задачи 13
2.3 Описание программных средств 13
2.3.1 Описание переменных 13
2.4 Описание процедур и функций и их значения 13
2.5 Входная и выходная информация 14
2.5.1 Входная информация 14
2.5.2 Выходная информация 14
2.6 Руководство пользователя 15
2.7 Технология разработки программного средства 15
2.7.1 Технология разработки программы 15
2.7.2 Описание процесса отладки и испытания программы 15
Заключение 17
Список используемой литературы 18
Приложение А (обязательное) (блок - схема задачи)……………………………………………......19
Приложение B (обязательное) Листинг программы.………………………………………………....24

Содержимое работы - 1 файл

КУРСОВАЯ ГОТОВАЯ.doc

— 318.00 Кб (Скачать файл)

    - сбор сведений о поставленной задаче

    - выбор  реализуемого в программе алгоритма

    - определение  структуры и типов данных

    - написание  на выбранном языке алгоритма

    - отладка  и тестирование

    - сдача  программы 

    2.7.2 Описание процесса отладки и испытания программы

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

    Порядок испытаний проходил в следующем  порядке:

    - поиск и отладка синтаксических ошибок;

    - корректность расчетов проводимых  в программе;

    - корректность отображения выходной  информации;

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

 

Заключение 

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

    Данная  программа предназначена для  сортировки массива чисел по принципу пирамидальной сортировки. Программа по реализации не сложна, с ней может работать как опытный, так и начинающий пользователь. За время выполнения курсовой работы были укреплены знания, в среде программирования Turbo Pascal.  
 
 
 
 
 
 
 
 
 
 
 
 
 
 

 

Список используемой литературы 

    1. Ахо А., Хопкрофт Дж., Ульман Дж, Структуры данных и алгоритмы. – М:Мир, 2000 – 256 с.

    2. Дональд Э. Кнут, Глава 2.3. Деревья. – Искусство программирования. — М.: Вильямс, 2000 — 832 с.

    3. Кормен Т, Пирамидальная сортировка. – М:Мир, 2000 – 390 с.

    4. Окулов С.М, Основы Программирования. – ММир, 1998 – 256 с.

    5.httr://www.wikipedia.ru/

    6. httr://www.codelab.ru/t/pyramid_sort/

    7. httr://www..rsdn.ru/ 
 
 
 
 
 
 
 
 
 
 
 
 

Приложение А

(обязательное)

(блок – схема задачи) 

   

 

 
 
 
 
 
 

 
 
 
 
 

 
 
 

 
 
 
 
 
 
 
 
 
 

 

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Приложение  B

(обязательное)

Листинг программы 

Рrogram Heap;

uses

  crt;

const

   MaxN = 1000;

var

   a: array[1..MaxN] of LongInt;

   n, hs, i: LongInt; 

procedure swap(var x, y: LongInt);

var z: LongInt;

begin

   z := x; x := y; y := z;

end; 

procedure pushdown(j: LongInt);

var max: LongInt;

begin

    if (2*j <= hs) and (a[j] < a[2*j])

               then  max := 2*j

               else  max := j;

    if (2*j+1 <= hs) and (a[max] < a[2*j+1])

               then  max := 2*j+1;

    if max <> j then begin

                       swap(a[max], a[j]);

                       pushdown(max)

                    end

end; 

procedure heapsort;

begin

    hs := n;

    for i := n div 2 downto 1 do

        pushdown(i);

    for i := n downto 2 do

       begin

           swap(a[1], a[i]);

           dec(hs);

           pushdown(1)

       end

end; 

procedure input;

begin

    repeat

        writeln('Введите количество элементов  (не более 10000): ');

        readln(n);

    until n < MaxN; 

    writeln('Введите элементы исходного массива: ');

    for i := 1 to n do

        readln(a[i]); 

end; 
 

procedure output;

begin

    writeln('Отсортированный массив: ');

    for i := 1 to n do

        write(a[i], ' ');

end; 

begin

    clrscr;

    input;

    heapsort;

    output;

    readln;

end. 

Информация о работе Программирование. Структура деревьев