[Rusanova_YA.M.,_Amelina_N.I.,_Pasechnuei_L.G.]_YA(BookFi.org) (1)
.pdfТЕМА 2. ДВУСВЯЗНЫЕ ЛИНЕЙНЫЕ СПИСКИ
Создать двусвязный список с указателями на первый и последний элементы списка.
Задание 1
1)Продублировать в списке первый и последний элементы.
2)Продублировать в списке все нулевые элементы.
3)Продублировать в списке все положительные элементы.
4)Продублировать в списке все отрицательные элементы.
5)Продублировать в списке все элементы с заданным значением.
6)Продублировать все элементы со значением большим заданного значения.
7)Продублировать все элементы со значением меньшим заданного значения.
8)Продублировать все элементы с нечетными значениями.
9)Продублировать все элементы с четными значениями.
10)Продублировать в списке первый из нулевых элементов.
11)Продублировать в списке первый положительный элемент.
12)Продублировать в списке первый отрицательный элемент.
13)Продублировать в списке первый из элементов с заданным значением.
14)Продублировать первый из элементов со значением большим заданного значения.
15)Продублировать первый из элементов со значением меньшим заданного значения.
16)Продублировать первый из элементов с нечетными значениями.
17)Продублировать первый из элементов с четными значениями.
18)Переместить первый элемент в конец списка (операции выделения и освобождения памяти не использовать; информационные поля не менять).
11
19)Переместить последний элемент в начало списка (операции выделения и освобождения памяти не использовать; информационные поля не менять).
20)Переместить первый из элементов с заданным значением в конец списка (операции выделения и освобождения памяти не использовать; информационные поля не менять).
21)Переместить первый элемент из элементов с заданным значением в начало списка (операции выделения и освобождения памяти не использовать; информационные поля не менять).
Задание 2
1)Удалить из списка все нулевые элементы.
2)Удалить из списка все положительные элементы.
3)Удалить из списка все отрицательные элементы.
4)Удалить из списка все элементы с заданным значением.
5)Удалить из списка все элементы со значением, большим заданного значения.
6)Удалить из списка все элементы со значением, меньшим заданного значения.
7)Удалить из списка все элементы с нечетными значениями.
8)Удалить из списка все элементы с нечетными значениями.
9)Удалить из списка первый из нулевых элементов.
10)Удалить из списка первый из положительных элементов.
11)Удалить из списка первый из отрицательных элементов.
12)Удалить из списка первый из элементов, с заданным значением.
13)Удалить из списка первый из элементов со значением, большим заданного значения.
14)Удалить из списка первый из элементов со значением, меньшим заданного значения.
15)Удалить из списка первый из элементов с нечетным значением.
16)Удалить из списка первый из элементов с четным значением.
12
ТЕМА 3. ДВОИЧНЫЕ ДЕРЕВЬЯ
Задание 1
1)Создать дерево поиска, используя рекурсивную процедуру добавления элемента в дерево.
2)Создать дерево поиска, используя нерекурсивную процедуру добавления элемента в дерево.
3)Создать идеально сбалансированное дерево с n вершинами, значения которых читаются из файла ([3], [10]).
Задание 2
1)Описать рекурсивную процедуру обхода дерева сверху вниз (префиксного обхода).
2)Описать рекурсивную процедуру обхода дерева слева направо (инфиксного обхода).
3)Описать рекурсивную процедуру обхода дерева снизу вверх (постфиксного обхода).
4)Описать рекурсивную процедуру обхода дерева справа налево (см. [10]) и вывода значения узла дерева на экран с выделением каждого уровня с помощью соответствующего отступа (корень дерева находится на нулевом уровне).
5)Описать нерекурсивную процедуру обхода дерева сверху вниз.
6)Описать нерекурсивную процедуру обхода дерева слева направо.
7)Описать нерекурсивную процедуру обхода дерева снизу вверх.
Задание 3
Описать рекурсивную процедуру или функцию решения задачи (значения узлов дерева – целые числа).
1)Подсчитать количество узлов дерева с заданным значением.
2)Подсчитать количество узлов дерева с нулевыми значениями.
13
3)Подсчитать количество узлов дерева с положительными значениями.
4)Подсчитать количество узлов дерева с отрицательными значениями.
5)Подсчитать количество узлов дерева с четными значениями.
6)Подсчитать количество узлов дерева с нечетными значениями.
7)Найти сумму значений всех узлов дерева.
8)Найти сумму положительных значений в узлах дерева.
9)Найти сумму отрицательных значений в узлах дерева.
10)Найти сумму четных значений в узлах дерева.
11)Найти сумму нечетных значений в узлах дерева.
12)Найти произведение значений всех узлов дерева.
13)Найти произведение положительных значений в узлах дерева.
14)Найти произведение отрицательных значений в узлах дерева.
15)Найти произведение четных значений в узлах дерева.
16)Найти произведение нечетных значений в узлах дерева.
17)Найти минимальное значение в узлах непустого дерева.
18)Найти максимальное значение в узлах непустого дерева.
19)Вычислить среднее арифметическое значений всех узлов дерева.
20)Вычислить среднее арифметическое положительных значений в узлах дерева.
21)Вычислить среднее арифметическое отрицательных значений в узлах дерева.
22)Подсчитать количество листьев дерева.
23)Подсчитать количество внутренних узлов дерева.
24)Подсчитать количество узлов дерева, не имеющих левого потомка.
25)Подсчитать количество узлов дерева, не имеющих правого потомка.
26)Выдать значения из всех листьев дерева.
27)Выдать значения внутренних узлов дерева.
28)Выдать значения узлов дерева, больших заданного числа.
29)Выдать значения узлов дерева, меньших заданного числа.
30)Создать список адресов всех листьев дерева.
31)Создать список адресов внутренних узлов дерева.
14
32)Определить глубину непустого дерева.
33)Определить количество узлов дерева на заданном уровне.
34)Определить сумму значений в узлах на заданном уровне.
35)Проверить, имеется ли в дереве узел с заданным значением.
36)Проверить, если ли в дереве хотя бы два узла с одинаковыми значениями.
37)Удалить листья дерева со значениями, равными заданному числу.
38)Удалить листья дерева со значениями, большими заданного числа.
39)Удалить листья дерева со значениями, меньшими заданного числа.
Задание 4
Описать нерекурсивную процедуру или функцию решения задачи (значения узлов дерева – целые числа).
1)Получить значение самого левого листа дерева.
2)Получить значение самого правого листа дерева.
3)Найти минимальное значение в узлах дерева поиска.
4)Найти максимальное значение в узлах дерева поиска.
5)Подсчитать число узлов дерева поиска с заданным значением.
6)Проверить, имеется ли в дереве поиска узел с заданным значением.
7)Включить узел с заданным значением в дерево поиска, если узел с таким значением в нем отсутствует.
8)Определить адрес узла дерева с заданным значением.
9)Выдать, используя очередь, значения из всех узлов дерева по уровням: сначала – из корня дерева, затем (слева направо) – из вершин, дочерних по отношению к корню, затем (также слева направо) – из вершин, дочерних по отношению к этим вершинам, и т.д. ([7]).
10)Выдать значения узлов заданного уровня дерева (см. 9)).
11)Решить одну из задач 1) – 29) задания 3, используя стек или очередь.
15
ЛИТЕРАТУРА
1Амелина Н.И. Задачи по программированию. / Н.И. Амелина, Я.М. Демяненко, Е.Н. Лебединская, Л.Г. Пасечный, И.Г. Спивак, А.Б. Усов. –
М.: Вузовская книга, 2000. – 104 с. – ISBN 5-89522-109-2.
2Вирт Н. Алгоритмы + структуры данных = программы. – М.: 1989. –
406 с.
3Вирт Н. Алгоритмы и структуры данных. – М.: Мир, 1989. – 360 с. – ISBN 5-03-001045-9.
4Епанешников А.М., Епанешников В.А. Программирование в среде
Turbo Pascal 7.0 – М.: «Диалог – МИФИ», 1996. – 288 с. – ISBN 5-86404-029-0.
5 Минакова Н.И. Методы |
программирования. |
Учебное пособие |
/ Н.И.Минакова, Е.С. Невская, |
Г.А. Угольницкий, |
А.А. Чекулаева, |
М.И. Чердынцева. – М.: Вузовская книга, 2000. –280 с. –ISBN 5-89522-038-X.
6Невская Е.С., Чекулаева А.А., Чердынцева М.И. Искусство программирования. – М.: Вузовская книга, 2002. – 240 с. – ISBN 5-9502-0003-9.
7Пильщиков В.Н. Сборник упражнений по языку Паскаль. – М.:. Наука, 1989. – 160 с. – ISBN 5-02-013995-5.
8Фаронов В.В. Турбо Паскаль 7.0. Начальный курс. – М.: «Нолидж», 1997. – 616 с. ISBN 5-89251-012-3.
9Абрамян М.Э. Указатели и объекты в Турбо-Паскале. Методические указания для студентов механико-математического факультета. Части 1, 2. – Ростов-на-Дону, УПЛ РГУ, 1996.
10Амелина Н.И., Чердынцева М.И. Структуры данных. Деревья. Методические указания по курсу «Алгоритмические языки и методы трансляции» для студентов механико-математического факультета дневного и вечернего отделения. – Ростов-на-Дону, УПЛ РГУ, 1998.
11Чекулаева А.А., Спивак И.Г. Динамические структуры данных. Методические указания для студентов вечернего отделения механикоматематического факультета. – Ростов-на-Дону, УПЛ РГУ, 1998.
16
