Часть 2. Реализация списковых и древовидных структур данных



1. Для кольцевого односвязного неупорядоченного списка реализовать операции:

· включение нового узла вслед за k-м;

· вывод списка на экран.

2. Для кольцевого односвязного неупорядоченного списка реализовать операции:

· поиск узла с заданным значением;

· исключение k-го узла.

3. Для кольцевого односвязного неупорядоченного списка реализовать операции:

· сохранение содержимого списка в типизированном файле;

· чтение содержимого списка из типизированного файла.

4. Для кольцевого односвязного неупорядоченного списка реализовать операции:

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

· сортировка списка.

5. Реализовать построение дерева с произвольным числом потомков каждого узла. Разработать процедуру подсчета количества узлов дерева и количества потомков заданного узла.

6. Реализовать построение дерева с произвольным числом потомков каждого узла. Разработать процедуру отображения поддерева с наибольшим числом узлов.

7. Реализовать построение дерева с произвольным числом потомков каждого узла. Разработать процедуру отображения поддерева с наименьшим числом узлов.

8. Реализовать построение дерева с произвольным числом потомков каждого узла. Разработать процедуру отображения поддерева с задаваемым числом узлов.

9. Реализовать построение бинарного дерева поиска и его отображение с помощью обхода в ширину. Разработать процедуру добавления нового узла.

10. Реализовать построение бинарного дерева поиска и его отображение с помощью алгоритма прямого обхода. Разработать процедуру удаления узла с минимальным значением.

11. Реализовать построение бинарного дерева поиска и его отображение с помощью алгоритма обхода в ширину. Разработать процедуру удаления узла с максимальным значением.

12. Реализовать построение бинарного дерева поиска и его отображение с помощью алгоритма прямого обхода. Разработать процедуру поиска узла с максимальным значением.

13. Реализовать построение бинарного дерева поиска и его отображение с помощью алгоритма обхода в ширину. Разработать процедуру поиска узла с минимальным значением.

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

15. Реализовать построение бинарного дерева поиска и его отображение с помощью алгоритма обхода в ширину. Разработать процедуру определения суммы значений, находящихся в n задаваемых узлах дерева.

 

Часть 3. Разработка хеш-таблиц и функций хеширования

1. Разработать приложение, которое использует хеш-таблицу для организации прямого доступа к элементам массива данных. Разработать процедуру поиска задаваемого элемента.

Для предотвращения коллизий использовать метод цепочек.

2. Разработать приложение, которое использует хеш-таблицу для организации прямого доступа к элементам массива данных. Разработать процедуру вставки задаваемого элемента. Для предотвращения коллизий использовать метод линейного апробирования.

3. Разработать приложение, которое использует хеш-таблицу для организации прямого доступа к элементам массива данных. Разработать процедуру удаления задаваемого элемента. Для предотвращения коллизий использовать метод квадратичного апробирования.

4. Разработать приложение, которое использует хеш-таблицу для организации прямого доступа к элементам массива данных. Разработать процедуру удаления задаваемого элемента. Для предотвращения коллизий использовать метод двойного хеширования.

5. Разработать приложение, которое использует хеш-таблицу для организации прямого доступа к элементам массива данных. Разработать процедуру удаления задаваемого элемента. Для предотвращения коллизий использовать метод цепочек.

6. Разработать приложение, которое использует хеш-таблицу для организации прямого доступа к элементам массива данных. Разработать процедуру вставки задаваемого элемента. Для предотвращения коллизий использовать метод цепочек.

7. Разработать приложение, которое использует хеш-таблицу для организации прямого доступа к элементам массива данных. Разработать процедуру поиска задаваемого элемента. Для предотвращения коллизий использовать метод двойного хеширования.

8. Разработать приложение, которое использует хеш-таблицу для организации прямого доступа к элементам массива данных. Разработать процедуру поиска задаваемого элемента. Для предотвращения коллизий использовать метод линейного апробирования.

9. Разработать приложение, которое использует хеш-таблицу для организации прямого доступа к элементам массива данных. Разработать процедуру поиска задаваемого элемента. Для предотвращения коллизий использовать метод квадратичного апробирования.

10. Разработать приложение, которое использует хеш-таблицу для организации прямого доступа к элементам массива данных. Разработать процедуру вставки задаваемого элемента. Для предотвращения коллизий использовать метод цепочек.

11. Разработать приложение, которое использует хеш-таблицу для организации прямого доступа к элементам массива данных. Разработать процедуру вставки задаваемого элемента. Для предотвращения коллизий использовать метод квадратичного апробирования.

12. Разработать приложение, которое использует хеш-таблицу для организации прямого доступа к элементам массива данных. Разработать процедуру вставки задаваемого элемента. Для предотвращения коллизий использовать метод двойного хеширования.

13. Разработать приложение, в котором создаётся таблица имен лексического анализатора программы. Таблица содержит характеристики каждого имени: номер, тип, число символов, указатель начала цепочки символов и др. Разработать процедуру поиска задаваемого имени. Для предотвращения коллизий использовать метод линейного апробирования.

14. Разработать приложение, в котором создаётся таблица имен лексического анализатора программы. Таблица содержит характеристики каждого имени: номер, тип, число символов, указатель начала цепочки символов и др. Разработать процедуру вставки нового имени. Для предотвращения коллизий использовать метод квадратичного апробирования.

15. Разработать приложение, в котором создаётся таблица имен лексического анализатора программы. Таблица содержит характеристики каждого имени: номер, тип, число символов, указатель начала цепочки символов и др. Разработать процедуру удаления задаваемого имени. Для предотвращения коллизий использовать метод двойного хеширования.

 

Примечание. Для заданий 1 – 12 рекомендуется использовать исходный массив, содержащий сведения, аналогичные списку физических лиц, например: порядковый номер, фамилия, имя, отчество, адрес и т.д.


[1] Программный модуль для тестирования выбирается по согласованию с преподавателем.


Дата добавления: 2018-11-24; просмотров: 175; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!