Составить программу которая удаляет из списка l все элементы l если таковые имеются

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

  • для задания списка нужно определить тип элементов этого списка по следующему правилу:

TYPE ССЫЛКА = ^ЭЛЕМЕНТ

  • в зависимости от количества полей в адресной части и порядка связывания элементов различают однонаправленные и двунаправленные списки;
  • Для размещения первого элемента направленного списка в памяти нужно выполнить следующие действия:
    1. Разместить ссылку на первый элемент списка в памяти;
    2. Присвоить значение полю данных;
    3. Присвоить ссылке на следующий элемент списка значение NIL (пустой ссылки);
    4. Присвоить ссылке на хвост списка ссылку на первый элемент списка. Это нужно, чтобы сохранить начало списка и при необходимости вернуться к нему.
    5. Для добавления нового элемента в конец направленного списка нужно выполнить следующие действия:
    1. Разместить в памяти следующий элемент списка
    2. Ссылке на хвост присвоить ссылку на следующий элемент
    3. Присвоить значение полю данных
    4. Присвоить ссылке на следующий элемент списка значение NIL (для контроля конца списка)
    • Для добавления нового элемента в произвольное место направленного списка нужно выполнить следующие действия:
      1. Разместить в памяти новый элемент списка;
      2. В поле для данных этого элемента занести нужную информацию;
      3. В поле ссылки на следующий элемент вставляемого элемента занести ссылку, взятую из одноименного поля элемента списка, за которым вставляется новый элемент;
      4. В поле ссылки на следующий элемент списка, за которым вставляется новый элемент занести ссылку на вставляемый элемент.
      1. Составить программу, которая удаляет из списка L все отрицательные элементы.
      2. Дан список, содержащий натуральные числа. Удалить те его элементы, которые кратны заданному числу k.
      3. Дан список символов. Подсчитать количество вхождений в этот список букв ‘t’.
      4. Составить программу, которая вставляет в список L новый элемент F за каждым вхождением элемента E.
      5. Составить программу, которая удаляет из списка L все элементы E, если таковые имеются.
      6. Составить программу, которая удаляет из списка L за каждым вхождением элемента E один элемент, если таковой имеется и он отличен от E.
      7. Составить программу, которая проверяет, есть ли в списке L хотя бы два одинаковых элемента.
      8. Составить программу, которая переносит в конец непустого списка L его первый элемент.
      9. Составить программу, которая в списке L из каждой группы подряд идущих одинаковых элементов оставляет только один.
      10. Составить программу, которая формирует список L, включив в него по одному разу элементы, которые входят одновременно в оба списка L1 и L2.
      11. Составить программу, которая формирует список L, включив в него по одному разу элементы, которые входят в один из списков L1 и L2, но в то же время не входят в другой.
      12. Составить программу для упорядочения в порядке возрастания элементов однонаправленного списка.
      13. Составить программу, заполняющую список последовательностью случайных различных целых чисел и суммирующую те его элементы, которые расположены между минимальным и максимальным элементом (если минимальный элемент предшествует максимальному).
      14. Даны упорядоченные списки L1 и L2. Вставить элементы списка L2 список L1, не нарушая его упорядоченности.
      15. Дан список вещественных чисел. Написать следующие функции:
      Читайте также:
      Программа где можно делать таблицы

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

      КАК УДАЛИТЬ ЭЛЕМЕНТ ИЗ МАССИВА | первый элемент | последний элемент | по индексу | C# УРОКИ | ДЗ #14

      Реализация односвязного списка c++ Часть 1 | Урок #133

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

      в) переноса в конец его первого элемента;

      г) вставки списка самого в себя вслед за первым вхождением числа x.

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

      а) входят одновременно в оба списка;

      б) входят хотя бы в один из списков;

      в) входят в один из списков L1 и L2, но в то же время не входят в другой из них;

      г) входят в список L1 , но не входят в список L2.

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

      а) перестановку первого и последнего непустых слов;

      б) печать текста из первых букв непустых слов;

      в) удаление из непустых слов первых букв;

      г) определение количества слов в непустом списке, отличных от последнего.

      КОНТРОЛЬНЫЕ ЗАДАНИЯ

      1. Дан список, содержащий целые числа. Определить количество различных элементов этого списка.
      2. Дан список, содержащий целые числа. Сформировать другой список из элементов данного, абсолютные величины которых являются простыми числами.
      3. Составить программу, которая вставляет в список L новый элемент F перед первым вхождением элемента E, если E входит в L.
      4. Составить программу, которая вставляет в список L за первым вхождением элемента E все элементы списка L, если E входит в L.
      5. Составить программу, которая переворачивает список L, т.е. изменяет ссылки в этом списке так, чтобы его элементы оказались расположенными в обратном порядке.
      6. Составить программу, которая формирует список L, включив в него по одному разу элементы, которые входят в список L1, но не входят в список L2.
      7. Программа должна находить среднее арифметическое элементов непустого однонаправленного списка вещественных чисел, заменять все вхождения числа x на число y, менять местами первый и последний элементы, проверять, упорядочены ли числа в списке по возрастанию.

      Источник: studfile.net

      Удалить из списка L все элементы Е, если таковые имеются — Turbo Pascal

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

      Читайте также:
      Как найти программу о похудении

      Код к задаче: «Удалить из списка L все элементы Е, если таковые имеются»

      Листинг программы

      uses crt; type Link = ^Number; Number = record ID: integer; Cislo : real; NextRec: Link; end; var i, c,k,l: integer; a,j: real; Last, First, Curr, spisok, tmp ,buf: Link; procedure Add(var spis1:Link ;znach1: real); var tmp:Link; begin if spis1=nil then begin new(spis1); tmp:=spis1; end else begin tmp:=spis1; while tmp^.nextrec<>nil do tmp:=tmp^.nextrec; new(tmp^.nextrec); tmp:=tmp^.nextrec; end; tmp^.nextrec:=nil; tmp^.cislo:=znach1; end; procedure ShowList(first: link); begin Writeln(‘Список элементов:’); if first=nil then writeln(‘В списке нет отрицательных элементов’) else begin while first<>nil do begin writeln(first^.cislo); first:=first^.nextrec; end; end; end; Procedure Del(var first:link; y:real); Var z,x,dx:link; Begin z:=first; While z<>Nil do if z^.cislo=y then if z=first then begin x:=first; first:=first^.nextrec; Dispose(x); z:=first end else begin x:=z; z:=z^.nextrec; dx^.nextrec:=z; Dispose(x); end else begin dx:=z; z:=z^.nextrec end; End; begin Writeln(‘Укажите длину списка: ‘); Readln(c); first:=nil; Writeln(‘Введите элементы:’); for i:= 1 to c do begin read(a); add(first,a); end; write(‘Что удалить: ‘); readln(j); Del (first, j); ShowList(first); readln; end.

      Источник: studassistent.ru

      Задания базового уровня

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

      2. Написать процедуру присоединения списка L2 к списку L1.

      3. Написать функцию, которая создает список L2, являющийся копией списка L1, начинающегося с данного узла.

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

      5. Написать функцию, которая удаляет из списка все вхождения ключа.

      6. Сформировать список целых чисел и упорядочить их по неубыванию.

      7. Сформировать список целых чисел и удалить из него все четные.

      8. Сформировать список вещественных чисел и вычислить сумму.

      9. Написать рекурсивную и нерекурсивную процедуры проверки наличия в списке заданного числа.

      10. Написать функцию, подсчитывающую количество слов в списке, которые начинаются с той же буквы, что и следующее слово.

      11. Определить симметричность произвольного текста любой длины. Текст должен оканчиваться точкой. Задачу решить с помощью двух списков.

      12. Вычислить значение выражения

      13. Значения вводятся с клавиатуры и динамически размещаются в памяти.

      14. Написать функцию, которая использует исходный список L и создает два новых списка L1 и L2. L1 содержит нечетные узлы, а L2 – четные.

      15. Написать функцию, которая использует исходный список L и создает два новых списка L1 и L2. L1 содержит нечетные числа, а L2 – четные.

      Читайте также:
      Программа которая строит графики функций

      16. Составить программу, которая вставляет в список L новый элемент F за каждым вождением элемента Е.

      17. Составить программу, которая вставляет в список L но­вый элемент F перед первым вхождением элемента Е, если Е входит в L.

      18. Составить программу, которая вставляет в непустой список L, элементы которого упорядочены по неубыванию, новый эле­мент Е так, чтобы сохранилась упорядоченность.

      19. Составить программу, которая удаляет из списка L все эле­менты Е, если таковые имеются.

      20. Составить программу, которая удаляет из списка L за каж­дым вхо-ждением элемента Е один элемент, если таковой имеется и он отличен от Е.

      21. Составить программу, которая удаляет из списка L все отри­цательные элементы.

      22. Составить программу, которая проверяет, есть ли в списке L хотя бы два одинаковых элемента.

      23. Составить программу, которая переносит в конец непустого списка L его первый элемент.

      24. Составить программу, которая вставляет в список L за пер­вым вхож-дением элемента Е все элементы списка L, если Е вхо­дит в L.

      25. Составить программу, которая переворачивает список L, т.е. изменяет ссылки в этом списке так, чтобы его элементы ока­зались расположенными в обратном порядке.

      26. Составить программу, которая в списке L из каждой группы подряд идущих одинаковых элементов оставляет только один.

      27. Составить программу, которая формирует список L, вклю­чив в него по одному разу элементы, которые входят одновре­менно в оба списка Lx и Ег.

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

      29. Составить программу для упорядочения в порядке возраста­ния элементов однонаправленного списка.

      30. Даны упорядоченные списки Li, и Lj. Вставить элементы списка Li в список Lj не нарушая его упорядоченности.

      Вопросы к защите лабораторной работы № 7

      1) Что такое указатели? Какие значения они могут принимать? Какие операции возможны над указателями?

      2) Что представляют собой динамические структуры данных? Для чего они используются? Чем отличаются от данных статического типа?

      3) Какие стандартные процедуры существуют в языке Pascal для работы с указателями?

      4) Зачем различать типы указателей?

      5) Какие операции требуется выполнить для вставки и удаления элемента списка?

      6) Сколько элементов может содержать список?

      7) Можно ли для построения списка обойтись одной переменной?

      11 Лабораторная работа № 8. «Исключение элементов из списка»

      Цель работы. Ознакомление с возможностью выполнения операции исключения элементов из списка; закрепление навыков использования ссылочных типов данных.

      Воспользуйтесь поиском по сайту:

      studopedia.org — Студопедия.Орг — 2014-2023 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.006 с) .

      Источник: studopedia.org

      Рейтинг
      ( Пока оценок нет )
      Загрузка ...
      EFT-Soft.ru