Лабораторная работа: Динамические структуры данных
Міністерство освіти і науки України
Національний технічний університет України "КПІ"
Кафедра медичної кібернетики та телемедицини
Лабораторна робота №2
Тема: Динамічні структури даних
Варіант №16 (задача 17.16).
Виконав:
студент ІМ-81
Плахтій Артур Миколайович
Перевірив:
старший викладач
Зінченко Ніна Павлівна
Київ 2009
Содержание
1. Теоретическая часть
Некоторые линейные списки
Построение сложных структур в динамической памяти
Бинарные деревья
2. Условия задачи
Текст программы
Екран результату
Контрольні розрахунки
Висновок
Список літературних джерел
1. Теоретическая часть
Некоторые линейные списки
Стек создается как линейный список. Пусть Top - указатель на начало стека. Стек удобно строить в обратном порядке. Следующий фрагмент программы демострирует основные операции работы со стеком:
Type ukaz=stak, stak=record inf: integer, next: ukaz, end, Var Top,Tek: ukaz; value: integer Procedure DobavS;
Begin new (Tek) readln (Tek. inf) Tek. next: =Top Top: =Teк End Procedure UdalS Begin Top: =Top. next if Top=0 then writeln (‘нехватка элементов’) End
Для организация очереди можно использовать аналогичный ссылочный тип, при этом необходимо иметь указатели на начальный nach и конечный kon элементы. Очередь удобно строить в прямом порядке (рис.1).
Рис.1. Пример построения очереди в прямом порядке
Циклически связанный список (циклический список) - такой список, в котором связь от последнего узла идет к первому элементу списка. На рис.2 изображен односвязный циклический список. В нем можно получить доступ к любому элементу списка, отправляясь от любой точки.
Рис.2. Пример циклического списка
Наиболее важные операции для односвязных циклических списков:
1. включить элемент слева
--> ЧИТАТЬ ПОЛНОСТЬЮ <--