Рекурсивный алгоритм. Определение рекурсивной функцию int Lat, возвращающую количество латинских букв в текстовом файле, страница 11

5.  Написать подпрограмму генерации перестановок рекурсивным методом.

6.  Написать подпрограмму генерации перестановок в антилексикографическом порядке.

7.  Написать программу вывода на экран кривой Пеано.

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

9.  Написать программу для нахождения компоненты связности графа, содержащей заданную вершину.

10.  Написать подпрограмму для определения существования пути в графе, который бы соединял заданные вершины.

11.  Написать подпрограмму для нахождения пути, соединяющего две заданные вершины.

12.  Написать программу поиска кратчайшего пути между заданными вершинами графа.

13.  Написать подпрограмму размена денег жадным методом.

14.  Написать подпрограмму работы с динамическим стеком целых чисел.

15.  Написать программу генерации перестановок, преобразовав рекурсивную подпрограмму.

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

17.  Написать подпрограммы добавления, удаления и чтения элементов очереди целых чисел.

18.  Написать подпрограммы работы с деком.

19.  Написать подпрограммы работы с циклическим списком слов и применить их для решения задачи Джозефуса.

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

21.  Написать подпрограммы добавления, удаления и поиска элементов дерева поиска.

22.  Написать подпрограммы обхода дерева поиска в прямом, симметричном и обратном порядках.

23.  Написать программу размена денег для случая, когда число монет каждого достоинства ограничено (упрощенная задача о ранце).

24.  Написать программу решения уравнения f(x) = 0 для непрерывной функции f на отрезке [a, b], принимающей на концах отрезка значения противоположных знаков.

25.  Написать программу, выводящую сначала все положительные числа из файла, а затем – отрицательные.

26.  Написать программу, находящую по крайней мере один путь (без повторяющихся полей) шахматного коня, соединяющий заданные два поля.

27.  Написать подпрограмму, проверяющую текст на соответствие круглых, квадратных и фигурных скобок.

28.  Написать программу нахождения частоты повторения целых чисел в файле.

29.  Написать подпрограммы конкатенации и обращения линейных списков.

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


ЛИТЕРАТУРА

1.  Ахо А.В. Структуры данных и алгоритмы / А.В. Ахо, Дж. Хопкрофт, Д.Д. Ульман. – М.: Издательский дом «Вильямс», 2000. – 384 с.

2.  Бентли Д. Жемчужины творчества программистов. – М.: Радио и связь, 1990. – 224 с.

3.  Вирт Н. Алгоритмы и структуры данных. – М.: Мир, 1989. – 360 с.

4.  Вирт Н. Систематическое программирование. Введение. – М.: Мир, 1977. – 184 с.

5.  Гудман С., Хидетниеми С. Введение в анализ и разработку алгоритмов. – М.: Мир, 1981. – 368 с.

6.  Евстигнеев В.А., Касьянов В.Н. Теория графов: алгоритмы обработки деревьев. – Новосибирск: ВО «Наука», 1994. – 360 с.

7.  Зельковиц М. Принципы разработки программного обеспечения. / М. Зельковиц, А. Шоу, Дж. Гэннон.  – М.: Мир, 1982. – 368 с.

8.  Кнут Д. Искусство программирования для ЭВМ. Т. 1: Основные алгоритмы. – М.: Издательский дом «Вильямс», 2000. – 720 с.

9.  Кнут Д. Искусство программирования для ЭВМ. Т. 3: Поиск и сортировка. – М.: Издательский дом «Вильямс», 2000. – 832 с.

10.  Липский В. Комбинаторика для программистов. – М.: Мир, 1988. – 213 с.

11.  Нивергельт Ю., Фаррар Дж., Рейнгольд Э. Машинный подход к решению математических задач / Ю. Нивергельт, Дж. Фаррар, Э. Рейнгольд. – М.: Мир, 1977. – 352 с.

12.  Топп У., Форд У. Структуры данных в C++. – М.: ЗАО «Издательство БИНОМ», 1999. – 816 с.