Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Структуры данных и алгоритмы. Учебное пособие.pdf
Скачиваний:
0
Добавлен:
15.08.2026
Размер:
1 Мб
Скачать

4Даны действительные числа x1, x2, ... , xn (n 2 и заранее неизвестно). Вычислить:

а) x1xn + x2xn - 1 + ... + xnx1;

б) (x1 + xn)(x2 + xn - 1) ... (xn + x1);

в) (x1 + x2 + 2xn)(x2 + x3 + 2xn - 1) ... (xn - 1 + xn + 2x2).

5Даны действительные числа y1, y2, ... , yn (n 2 и заранее неизвестно). Получить последовательность:

а) y1, y2, ... , yn, y1, ... , yn; б) y1, y2, ... , yn, yn, ... , y1; в) yn, yn - 1, ... , y1, y1, ... , yn.

6Даны действительные числа a1, a2, ... , a2n (n 2 и заранее неизвестно). Вычислить:

а) a1a2n + a2a2n - 1 + ... + anan + 1;

б) min(a1 + an + 1 , a2 + an + 2, ... , an + a2n);

в) max(min(a1, a2n), min(a3, a2n - 2), ... , min(a2n - 1, a2)).

Задачи для самостоятельной работы

1Для указанного ниже представления списка, опишите на языке C соответствующий тип list, определите переменную p (и, если необходимо, вспомогательные переменные) и напишите последовательность операторов для создания этого списка.

а)

36

б)

в)

г)

д)

2Для указанного ниже представления списка, опишите на языке C соответствующий тип list, определите переменную p (и, если необходимо, вспомогательные переменные) и напишите последовательности операторов для создания этого списка и его преобразования к списку нового вида.

а)

б)

37

в)

3Для указанного ниже представления списка, опишите на языке C соответствующий тип list (считать тип информационной части элементов простым), определите переменную L (и, если необходимо, вспомогательные переменные) и напишите последовательность операторов для:

1)вычисления суммы последнего и предпоследнего элементов непустого списка;

2)вычисления среднего арифметического элементов непустого списка;

3)обмена местами первого и последнего элементов непустого списка.

Для выполнения задания использовать один из двух видов списка:

а)

б)

Линейные односвязные списки

1 Описать процедуру или функцию, которая: а) проверяет на равенство списки L1 и L2;

б) определяет, входит ли список L1 в список L2;

38

в) добавляет в конец списка L1 все элементы списка L2;

г) проверяет, есть ли в списке L хотя бы два одинаковых элемента;

д) оставляет в списке L только первые вхождения одинаковых элементов;

e)формирует список L, включив в него по одному разу элементы, которые входят хотя бы в один из списков L1 и L2;

ж) формирует список L, включив в него по одному разу элементы, которые входят одновременно в оба списка L1 и L2.

2 Описать рекурсивную процедуру или функцию, которая: а) определяет, входит ли заданный элемент в список;

б) подсчитывает число вхождений заданного элемента в список;

в) удаляет из списка первое вхождение заданного элемента; г) находит максимальный элемент непустого списка;

д) заменяет в списке все вхождения заданного элемента на его абсолютное значение (тип элемента списка вещественный).

Линейные двусвязные списки

1В текстовом файле дана последовательность символов, оканчивающаяся точкой. Написать подпрограмму, которая

а) проверяет, симметричен ли относительно его середины двусвязный кольцевой список. Используя эту подпрограмму, проверить, симметрична ли относительно ее середины заданная последовательность символов;

б) печатает последовательность символов в обратном порядке. Используя эту подпрограмму, напечатать заданную последовательность.

39

2 Дана последовательность из не менее чем двух различных натуральных чисел оканчивающаяся нулем. Написать подпрограмму, которая:

а) печатает в обратном порядке все числа между наибольшим и наименьшим числами (т. е. в порядке от наименьшего к наибольшему) этой последовательности;

б) печатает эти числа в порядке их не убывания. Используя эту подпрограмму, напечатать заданную последовательность.

3В текстовом файле дана последовательность чисел. Написать подпрограмму, которая

а) проверяет, упорядочена ли последовательность действительных чисел, хранящаяся в двунаправленном списке. Используя эту подпрограмму преобразовать заданную последовательность следующим образом, если она упорядочена, то, не нарушая упорядоченности, вставить в нее элемент со значением p, иначе удалить элемент с номером k;

б) подсчитывает количество элементов в двунаправленном списке, у которых равные соседи (первый и последний элементы считать соседями). Используя эту подпрограмму подсчитать количество элементов с равными соседями в заданной последовательности;

в) проверяет, содержит ли кольцевой двусвязный список, упорядоченный подсписок. Упорядоченный подсписок содержит более двух элементов, между которыми выполняется отношение порядка вида “ ”. Используя эту подпрограмму, найти максимальную длину упорядоченного подсписка в заданной последовательности;

г) проверяет, содержит ли кольцевой двунаправленный список упорядоченный (по не убыванию – “ ”) подсписок. Упорядоченный подсписок содержит более двух элементов. Используя эту подпрограмму, найти минимальную длину упорядоченного подсписка в заданной последовательности.

40

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]