Главная Случайная страница


Полезное:

Как сделать разговор полезным и приятным Как сделать объемную звезду своими руками Как сделать то, что делать не хочется? Как сделать погремушку Как сделать так чтобы женщины сами знакомились с вами Как сделать идею коммерческой Как сделать хорошую растяжку ног? Как сделать наш разум здоровым? Как сделать, чтобы люди обманывали меньше Вопрос 4. Как сделать так, чтобы вас уважали и ценили? Как сделать лучше себе и другим людям Как сделать свидание интересным?


Категории:

АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника






Краткая теория. «Реализация динамических структур «Список», «Кольцевой список»,





Лабораторная работа № 4

«Реализация динамических структур «Список», «Кольцевой список»,

Двусвязный список», «Двусвязный кольцевой список»».

 

Цель работы: исследовать и изучить динамические структуры «Список», «Кольцевой список»,

«Двусвязный список», «Двусвязный кольцевой список

 

Задача работы: овладеть навыками составления структур АТД «дерево» и написания программ по исследованию АТД «дерево» на любом языке программирования.

Порядок работы:

1. изучить описание лабораторной работы;

2. по заданию, данному преподавателем, разработать структуру АТД «дерево»;

3. написать программу на языке ПАСКАЛЬ;

4. отладить программу;

5. решить задачу;

6. оформить отчет.

Краткая теория

 

В односвязном списке можно передвигаться только в сторону конца списка. Узнать адрес предыдущего элемента из данного невозможно.


В поле указателя последнего элемента списка находится специальный признак null, свидетельствующий о конце списка.

 

Рис. - Структура односвязного списка

Кольцевой список, может быть организован на основе как односвязного, так и двухсвязного списков.

Кольцевой односвязный список получается из обычного односвязного спичка путем присваивания указателю последнего элемента списка значение указателя начала списка

 


Рис. – Структура кольцевого односвязного списка

Операции, производимые над односвязными списками:

· добавление элемента в начало списка;

· удаление элемента из начала списка;

· добавление элемента в произвольное место списка, отличное от начала

· удаление элемента из произвольного места списка, отличного от начала

· проверка, списка на пустоту;

· перестановка элементов списка;

· слияние двух списков;

· очистка списка;

· печать списка.

· Обработка односвязного списка не всегда удобна, так как отсутствует возможность продвижения в противоположную сторону.

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

·

·

· рис. - Структура линейного двухсвязного списка

·

· Поле NEXT - указатель на следующий элемент, поле PREV - указатель на предыдущий элемент. В крайних элементах соответствующие указатели должны содержать nil

· Для удобства обработки списка добавляют еще один особый элемент - указатель конца списка.

· Кольцевой двусвязный список. Наличие двух указателей в каждом элементе усложняет список и приводит к дополнительным затратам памяти, но в то же время обеспечивает более эффективное выполнение некоторых операций над списком.

· В двухсвязном списке в первом и последнем элементах соответствующие указатели переопределяются,

 


Рис. - Структура кольцевого двухсвязного списка

 

Операции над двусвязными списками:

· создание элемента списка;

· поиск элемента в списке;

· вставка элемента в указанное место списка;

· удаление из списка заданного элемента

Date: 2015-12-12; view: 360; Нарушение авторских прав; Помощь в написании работы --> СЮДА...



mydocx.ru - 2015-2024 year. (0.006 sec.) Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав - Пожаловаться на публикацию