Основы программирования. Указатели. Динамические структуры данных. Абстрактные типы данных. Классы - 22 стр.

UptoLike

Составители: 

24
Очевидно, во время прохода по списку можно не только менять элементы, но и
выводить их или производить вычисления: например, подсчитывать сумму или
количество элементов, удовлетворяющих некоторому условию.
8. Поиск элемента со значением x.
p
x
Проход по списку здесь надо совершать либо до конца списка, либо до мо-
мента, когда текущий элемент будет иметь значение x. Если после цикла текущий
элемент не нулевой, то он содержит первое найденное значение x.
while (p<>nil) and (p^.data<>x) do
p:=p^.next;
found:=p<>nil;
Следует обратить внимание на то, что порядок следования операндов в
операции
and важен и для корректной работы последнего алгоритма в Delphi должен быть
установлен ключ компиляции сокращенного вычисления логических выражений
{$B-}.
9. Разрушение списка.
3 5 7
p
При разрушении мы удаляем элементы из начала списка до тех пор, пока
список не станет пустым:
while p<>nil do
begin
t:=p;
p:=p^.next;
Dispose(t);
end;
10. Вставка элемента в упорядоченный список с сохранением упорядоченно-
сти.
Пусть список не пуст и его элементы упорядочены по возрастанию. Чтобы
вставить элемент со значением x с сохранением упорядоченности, найдем
первый
элемент с большим значением и произведем вставку перед ним. Для вставки пе-
ред элементом будем «заглядывать» на один элемент вперед, используя вместо
переменной p выражение p^.next. Оформим данную операцию в виде процеду-
ры: