Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Динамические структуры - задания и пример.doc
Скачиваний:
1
Добавлен:
01.03.2025
Размер:
82.94 Кб
Скачать
  1. Вывод списка. Ввести дополнительный параметр, указывающий, в прямом или обратном порядке выводить элементы списка.

  2. Вставка элемента в заданную позицию списка. Эта функция вставляет значение х в заданную позицию р в списке, где p=1, 2,…n, n+1. Если список содержит элементы a1, a2, ..., аn, то после выполнения этой функции список будет иметь вид а1, а2, ..., ар-1, х, ар, ..., a n.. Если р принимает значение n+1, то будем иметь a1 , a2, , ..., an ,, х. Если в списке нет позиции р, то оставить список без изменения.

  3. Удаление элемента из заданной позиции списка. Эта функция удаляет элемент в позиции р списка, где p=1, 2,…n. Так, если список состоит из элементов a1, a2, ..., аn , то после выполнения этого оператора количество элементов уменьшится на единицу, а список будет иметь вид а1, а2, ...,, ap-1 ,ap+1, ..., аn. Оставить список без изменения, если в списке нет позиции р.

  4. Удаление всех элементов из списка.

  5. Поиск элемента в списке. Эта функция возвращает позицию искомого значения х в списке, в качестве параметра задается также номер вхождения m. Если объекта х нет в списке или он встречается меньше чем m раз, то возвращается NULL.

  6. Получение значения предыдущего элемента для позиции p. Если p=1 или в списке нет позиции p, то возвращается NULL.

  7. Получение значения следующего элемента для позиции p. Если p=n или в списке нет позиции p, то возвращается NULL.

Вариант 9

Реализовать следующие функции для работы с двусвязным списком:

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

  2. Вставка элемента в заданную позицию списка. Эта функция вставляет значение х в заданную позицию р в списке, где p=1, 2,…n, n+1. Если список содержит элементы a1, a2, ..., аn, то после выполнения этой функции список будет иметь вид а1, а2, ..., ар-1, х, ар, ..., a n.. Если р принимает значение n+1, то будем иметь a1 , a2, , ..., an ,, х. Если в списке нет позиции р, то оставить список без изменения.

  3. Удаление элемента из заданной позиции списка. Эта функция удаляет элемент в позиции р списка, где p=1, 2,…n. Так, если список состоит из элементов a1, a2, ..., аn , то после выполнения этого оператора количество элементов уменьшится на единицу, а список будет иметь вид а1, а2, ...,, ap-1 ,ap+1, ..., аn. Оставить список без изменения, если в списке нет позиции р.

  4. Удаление всех элементов из списка.

  5. Поиск элемента в списке. Эта функция возвращает позицию искомого значения х в списке, в качестве параметра задается также номер вхождения m. Если объекта х нет в списке или он встречается меньше чем m раз, то возвращается NULL.

  6. Получение значения предыдущего элемента для позиции p. Если p=1 или в списке нет позиции p, то возвращается NULL.

  7. Получение значения следующего элемента для позиции p. Если p=n или в списке нет позиции p, то возвращается NULL.

Вариант 10

Реализовать очередь с приоритетным исключением на основе односвязного списка. Для этого разработать следующие функции:

  1. Помещение элемента в очередь. Элемент всегда помещается в хвост очереди.

  2. Получение элемента с максимальным значением. Функция должна возвратить позицию первого элемента с максимальным значением (считаем, что максимальный элемент — это и есть элемент с наивысшим приоритетом).

  3. Извлечение элемента с максимальным значением из очереди. Если в очереди имеется несколько одинаковых элементов, то удаляем первый из них.

  4. Вывод всей очереди в порядке расположения элементов.

  5. Проверка очереди на пустоту.

  6. Удаление всех элементов из очереди.

Вариант 11

Реализовать очередь с приоритетным включением на основе односвязного списка. Для этого разработать следующие функции:

  1. Помещение элемента в очередь. Каждый элемент при добавлении его в очередь вставляется в нужное место, чтобы очередь всегда была упорядочена.

  2. Получение элемента из головы очереди.

  3. Извлечение элемента из головы очереди.

  4. Вывод всей очереди в порядке расположения элементов.

  5. Проверка очереди на пустоту.

  6. Удаление всех элементов из очереди.

Вариант 12

Решить следующую задачу, используя двоичное дерево поиска

Дан файл с текстом на английском языке. Составить словарь этого файла, который содержит все слова, имеющиеся в этом тексте, в алфавитном порядке. Для каждого слова должно быть выведено также, сколько раз оно встречается в тексте.

Вариант 13

Решить следующую задачу, используя стек

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

Вариант 14

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

Имеется K касс, обслуживающих покупателей. Время обслуживания одного покупателя – равномерно распределённая случайная величина в интервале от d1 до d2. Время между приходом двух покупателей — равномерно распределённая случайная величина в интервале от p1 до p2. Покупатель встаёт в ту очередь, где в данный момент стоит меньше всего человек. Требуется написать программу, моделирующую данную систему и позволяющую определить, сколько человек стояли в очереди дольше заданного времени x за время моделирования T.