Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Динамические структуры задания.doc
Скачиваний:
25
Добавлен:
13.02.2015
Размер:
133.12 Кб
Скачать

Задание 1

Описать подпрограмму вставки одного или нескольких элементов в список. Подпрограмма должна обеспечивать возможность после её вызова выдавать сообщение в случае невозможности вставки с указанием причины ( см. [ 7 ] ).

  1. Продублировать первый элемент с заданным значением.

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

  3. Продублировать первый элемент со значением, большим заданного значения.

  4. Продублировать все элементы со значением, большим заданного значения.

  5. Продублировать первый элемент со значением, меньшим заданного значения.

  6. Продублировать все элементы со значением, меньшим заданного значения.

  7. Вставить новый элемент после первого нулевого элемента.

  8. Вставить новый элемент после каждого нулевого элемента.

  9. Вставить новый элемент после первого положительного элемента.

  10. Вставить новый элемент после каждого положительного элемента.

  11. Вставить новый элемент после первого отрицательного элемента.

  12. Вставить новый элемент после каждого отрицательного элемента.

  13. Вставить новый элемент после первого нечётного элемента.

  14. Вставить новый элемент после каждого нечётного элемента.

  15. Вставить новый элемент после первого чётного элемента.

  16. Продублировать все нулевые элементы.

  17. Продублировать первый нулевой элемент.

  18. Продублировать все положительные элементы.

  19. Продублировать первый положительный элемент.

  20. Продублировать все отрицательные элементы.

  21. Продублировать первый отрицательный элемент.

  22. Продублировать все нечётные элементы.

  23. Продублировать первый нечётный элемент.

  24. Продублировать все чётные элементы.

  25. Продублировать первый чётный элемент.

Задание 2

Описать подпрограмму удаления одного или нескольких элементов списка. Подпрограмма должна обеспечивать возможность после её вызова выдавать сообщение в случае невозможности удаления с указанием причины ( см. [ 7 ] ).

  1. Удалить из списка все положительные элементы.

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

  3. Удалить из списка все отрицательные элементы.

  4. Удалить из списка первый отрицательный элемент.

  5. Удалить из списка все нулевые элементы.

  6. Удалить из списка первый нулевой элемент.

  7. Удалить из списка все нечётные элементы.

  8. Удалить из списка первый нёчетный элемент.

  9. Удалить из списка все чётные элементы.

  10. Удалить из списка первый чётный элемент.

  11. Удалить из списка все элементы со значением большим заданного значения.

  12. Удалить из списка первый из элементов со значением большим заданного значения.

  13. Удалить из списка все элементы со значением меньшим заданного значения.

  14. Удалить из списка первый из элементов со значением меньшим заданного значения.

  15. Удалить из списка после каждого элемента с заданным значением один элемент.

  16. Удалить из списка после первого элемента с заданным значением один элемент.

  17. Удалить из списка после каждого элемента со значением большим заданного значения один элемент.

  18. Удалить из списка после первого элемента со значением большим заданного значения один элемент.

  19. Удалить из списка после каждого элемента со значением меньшим заданного значения один элемент.

  20. Удалить из списка после первого элемента со значением меньшим заданного значения один элемент.

  21. Удалить из списка после каждого элемента с заданным значением один элемент, если его значение отлично от заданного.

  22. Удалить из списка после первого элемента с заданным значением один элемент, если его значение отлично от заданного.

  23. Удалить из списка перед каждым элементом с заданным значением один элемент.

  24. Удалить из списка перед первым элементом с заданным значением один элемент.

  25. Удалить из списка перед каждым элементом с заданным значением один элемент, если его значение отлично от заданного значения.

Задание 3

Описать рекурсивную подпрограмму обработки списка.

  1. Определить количество нулевых элементов списка.

  2. Определить количество отрицательных элементов списка.

  3. Определить количество положительных элементов списка.

  4. Определить количество чётных элементов списка.

  5. Определить количество нечётных элементов списка.

  6. Определить количество элементов со значением, большим заданного значения.

  7. Определить количество элементов со значением, меньшим заданного значения.

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

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

  10. Определить количество элементов со значением, большим абсолютной величины заданного значения.

  11. Определить количество элементов со значением, меньшим абсолютной величины заданного значения.

  12. Определить сумму значений всех положительных элементов списка.

  13. Определить сумму значений всех отрицательных элементов списка.

  14. Определить сумму значений всех чётных элементов списка.

  15. Определить сумму значений всех нечётных элементов списка.

  16. Определить сумму значений элементов списка со значением, большим заданного значения.

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

  18. Проверить, входит ли в список хотя бы один нулевой элемент.

  19. Проверить, входит ли в список хотя бы один положительный элемент.

  20. Проверить, входит ли в список хотя бы один отрицательный элемент.

  21. Проверить, входит ли в список хотя бы один чётный элемент.

  22. Проверить, входит ли в список хотя бы один нечётный элемент.

  23. Проверить, входит ли в список хотя бы один элемент с заданным значением.

  24. Проверить, входит ли в список хотя бы один элемент со значением, большим заданного значения.

  25. Проверить, входит ли в список хотя бы один элемент со значением, меньшим заданного значения.

Задание 4

Описать рекурсивную подпрограмму обработки списка.

  1. Вставить элемент с заданным значением после каждого нулевого элемента.

  2. Вставить элемент с заданным значением после первого нулевого элемента.

  3. Вставить элемент с заданным значением после каждого положительного элемента.

  4. Вставить элемент с заданным значением после первого положительного элемента.

  5. Вставить элемент с заданным значением после каждого отрицательного элемента.

  6. Вставить элемент с заданным значением после первого отрицательного элемента.

  7. Удвоить в списке каждое вхождение чётного элемента.

  8. Удвоить в списке первое вхождение чётного элемента.

  9. Удвоить в списке каждое вхождение нечётного элемента.

  10. Удвоить в списке первое вхождение нечётного элемента.

  11. Удвоить в списке каждое вхождение положительного элемента.

  12. Удвоить в списке первое вхождение положительного элемента.

  13. Удвоить в списке каждое вхождение отрицательного элемента.

  14. Удвоить в списке первое вхождение отрицательного элемента.

  15. Удвоить в списке каждое вхождение нулевого элемента.

  16. Вставить элемент с заданным значением после первого чётного элемента.

  17. Вставить элемент с заданным значением после каждого чётного элемента.

  18. Вставить элемент с заданным значением после первого нечётного элемента.

  19. Вставить элемент с заданным значением после каждого нечётного элемента.

  20. Вставить элемент с заданным значением перед первым чётным элементом.

  21. Вставить элемент с заданным значением перед каждым чётным элементом.

  22. Вставить элемент с заданным значением перед первым нулевым элементом.

  23. Вставить элемент с заданным значением перед каждым нулевым элементом.

  24. Вставить элемент с заданным значением перед первым положительным элементом.

  25. Вставить элемент с заданным значением перед каждым положительным элементом.

Задание 5

Описать рекурсивную подпрограмму обработки списка.

  1. Удалить из списка один элемент после первого элемента с чётным значением, если его значение отлично от него.

  2. Удалить из списка один элемент после первого элемента с чётным значением.

  3. Удалить из списка один элемент после первого элемента с нечётным значением, если его значение отлично от него.

  4. Удалить из списка один элемент после первого элемента с нечётным значением.

  5. Удалить из списка один элемент после первого элемента с положительным значением, если его значение отлично от него.

  6. Удалить из списка один элемент после первого элемента с положительным значением.

  7. Удалить из списка один элемент после первого элемента с отрицательным значением, если его значение отлично от него.

  8. Удалить из списка один элемент после первого элемента с отрицательным значением.

  9. Удалить из списка один элемент после первого элемента с нулевым значением, если его значение отлично от него.

  10. Удалить из списка один элемент после первого элемента с нулевым значением.

  11. Удалить из списка первый элемент с нечётным значением.

  12. Удалить из списка все нечётные элементы.

  13. Удалить из списка первый элемент с чётным значением.

  14. Удалить из списка все чётные элементы.

  15. Удалить из списка первый элемент с отрицательным значением.

  16. Удалить из списка все отрицательные элементы.

  17. Удалить из списка первый элемент с положительным значением.

  18. Удалить из списка все положительные элементы.

  19. Удалить из списка первый элемент с нулевым значением.

  20. Удалить из списка все нулевые элементы.

  21. Удалить из списка первый из элементов со значением большим заданного значения.

  22. Удалить из списка все элементы со значением большим заданного значения.

  23. Удалить из списка первый из элементов со значением меньшим заданного значения.

  24. Удалить из списка все элементы со значением меньшим заданного значения.

  25. Удалить из списка один элемент после каждого элемента с нулевым значением.

ТЕМА 2 ДВУСВЯЗНЫЕ ЛИНЕЙНЫЕ СПИСКИ

Разработать и реализовать программу создания и обработки линейного двусвязного список с указателями на первый и последний элементы списка. Элемент (звено списка) содержит одно информационное поле целого типа.

При реализации на языке Паскаль программа должна иметь модульную структуру [ 5 ].

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

Модуль ( unit ) должен содержать описание соответствующих типов и подпрограмм работы со списками:

а) создание списка (данные вводятся из текстового файла);

б) просмотр списка (проход по списку с выдачей на экран значений информационных полей списка );

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

д) вставка одного или нескольких элементов в список ( Задание 1 );

е) удаление из списка одного или нескольких элементов ( Задание 2 ).

Задание 1

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

  1. Вставить новый элемент после каждого нулевого элемента.

  2. Вставить новый элемент после первого нулевого элемента.

  3. Вставить новый элемент после каждого положительного элемента.

  4. Вставить новый элемент после первого положительного элемента.

  5. Вставить новый элемент после каждого отрицательного элемента.

  6. Вставить новый элемент после первого отрицательного элемента.

  7. Продублировать все элементы с нечётными значениями.

  8. Продублировать первый из элементов с нечётными значениями.

  9. Продублировать все элементы с чётными значениями.

  10. Продублировать первый из элементов с чётными значениями.

  11. Продублировать все элементы со значением большим заданного значения.

  12. Продублировать первый из элементов со значением большим заданного значения.

  13. Продублировать все элементы со значением меньшим заданного значения.

  14. Продублировать первый из элементов со значением меньшим заданного значения.

  15. Продублировать в списке каждый из элементов с заданным значением.

  16. Вставить новый элемент перед первым нечётным элементом.

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

  18. Вставить новый элемент перед первым чётным элементом.

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

  20. Продублировать в списке первый из нулевых элементов.

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

  22. Продублировать в списке первый положительный элемент.

  23. Продублировать в списке все положительные элементы.

  24. Продублировать в списке первый отрицательный элемент.

  25. Продублировать в списке все отрицательные элементы.

Задание 2

Описать подпрограмму удаления одного или нескольких элементов двусвязного линейного списка.

  1. Удалить из списка первый из элементов с нечётным значением.

  2. Удалить из списка все элементы с нечётными значениями.

  3. Удалить из списка первый из элементов с чётным значением.

  4. Удалить из списка все элементы с чётными значениями.

  5. Удалить из списка первый из элементов со значением, большим заданного значения.

  6. Удалить из списка все элементы со значением, большим заданного значения.

  7. Удалить из списка первый из элементов со значением, меньшим заданного значения.

  8. Удалить из списка все элементы со значением, меньшим заданного значения.

  9. Удалить из списка первый из отрицательных элементов.

  10. Удалить из списка все отрицательные элементы.

  11. Удалить из списка первый из нулевых элементов.

  12. Удалить из списка все нулевые элементы.

  13. Удалить из списка первый из положительных элементов.

  14. Удалить из списка все положительные элементы.

  15. Удалить из списка после первого элемента со значением большим заданного значения один элемент.

  16. Удалить из списка после каждого элемента со значением большим заданного значения один элемент.

  17. Удалить из списка после первого элемента со значением меньшим заданного значения один элемент.

  18. Удалить из списка после каждого элемента со значением меньшим заданного значения один элемент.

  19. Удалить из списка после первого элемента с заданным значением один элемент.

  20. Удалить из списка после каждого элемента с заданным значением один элемент.

  21. Удалить из списка перед первым элементом с заданным значением один элемент.

  22. Удалить из списка перед каждым элементом с заданным значением один элемент.

  23. Удалить из списка после первого элемента с заданным значением один элемент, если его значение отлично от заданного.

  24. Удалить из списка после каждого элемента с заданным значением один элемент, если его значение отлично от заданного.

  25. Удалить из списка перед первым элементом с заданным значением один элемент, если его значение отлично от заданного значения.