Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Программирование4172 / Лекции / Лекция 16. Обработка списков.doc
Скачиваний:
50
Добавлен:
12.03.2015
Размер:
102.91 Кб
Скачать

Контрольные вопросы и упражнения

1. Как создать пустой список?

2. Как создать новый элемент списка?

3. Как включить в начало списка новый элемент, на который ссылается указатель i?

4. Напишите фрагмент включения элемента *i в конец списка.

5. Как удалить из списка 1-й элемент?

6. Приведите пример исходных данных для программы 15.1 и нарисуйте список, который сформирует программа.

7. Где в программе 16.1 происходит формирование списка?

8. Почему функции Vkl() передается адрес указателя списка p, а функции PechSp() – значение указателя p?

9. В функции Vkl() параметр p какого типа?

10. Как в функции Vkl() происходит обращение к указателю списка?

11. Изменится ли указатель списка p в главной программе, если функцию печати списка изменить следующим образом:

void PechSp ( struct EL_SP *p )

{

printf ("\nРезультат:\n");

for ( ; p != NULL; p =p -> sled )

puts (p -> id);

}

Выполнение контрольных заданий

1. Получите у преподавателя индивидуальное задание.

2. Напишите функцию на языке С и подберите тесты для ее проверки на компьютере. Все входные данные должны передаваться функции как параметры.

3. Включите свою функцию в программу 16.1, добавив в основную программу ввод необходимых для функции данных, ее вызов и вывод результата. Если функция должна изменить список, то для проверки результата вызовите функцию печати списка. Отладьте программу на компьютере.

4. Оформите и сдайте отчет.

Контрольные задания

Дан список идентификаторов. Длина каждого идентификатора не более 8 символов. Идентификаторы в списке расположены в лексикографическом порядке. Составить функции (подпрограммы) для следующих операций:

1. Удалить из списка

а) первый элемент;

б) второй элемент;

в) первые два элемента;

г) k-й по порядку элемент;

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

е) k первых элементов;

ж) предпоследний элемент;

з) последний элемент;

и) два последних элемента;

к) заданный идентификатор (первый по порядку, если таких в списке несколько);

л) все идентификаторы, совпадающие с заданным;

м) все идентификаторы, начинающиеся с заданной буквы;

н) все идентификаторы, следующие в списке после заданного идентификатора;

о) все идентификаторы, следующих в списке до заданного идентификатора;

п) все элементы.

2. Заменить на заданный идентификатор значение

а) k-го по порядку элемента списка;

б) предпоследнего элемента списка;

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

3. Определить количество идентификаторов в списке,

а) начинающихся с заданной буквы;

б) следующих после заданного идентификатора;

в) следующих до заданного идентификатора.

4. Записать в массив A

а) все идентификаторы из списка;

б) все идентификаторы, начинающиеся с заданной буквы;

в) k первых идентификаторов списка (k > 1);

г) все идентификаторы, следующие в списке до заданного идентификатора;

д) идентификаторы с нечетными порядковыми номерами (1,3,5…).

Указание. В качестве драйвера (программы отладки) своих функций возьмите программу 16.1, добавив в нее описания своих функций, их вызовы и печать результатов.

165