Лекции.Орг


Поиск:




Категории:

Астрономия
Биология
География
Другие языки
Интернет
Информатика
История
Культура
Литература
Логика
Математика
Медицина
Механика
Охрана труда
Педагогика
Политика
Право
Психология
Религия
Риторика
Социология
Спорт
Строительство
Технология
Транспорт
Физика
Философия
Финансы
Химия
Экология
Экономика
Электроника

 

 

 

 


A) Проход по списку с проверкой текущего элемента




p:=Head; {Установка текущего указателя на начало списка}

while (p<>nil) and (p^.inf<>A) do

begin

Oper(p); {Какая-либо операция над текущим элементом}

p:=p^.next {Переход к следующему элементу списка}

end;

Данный проход можно использовать:

• Для поиска определенного элемента, тогда в заголовок цикла добавляется соответствующее условие, например, (p^.inf<>A), (p^.inf>0) и т.п. Если элемент найден, p указывает на него. Если не найден, p=nil.

• Для выполнения какой-либо операции над элементами (вывод, суммирование, проверка на максимальность и т.д.). Тогда в тело цикла добавляются операторы или вызов подпрограммы для реализации этой операции.

B) Проход по списку с проверкой наличия элемента, следующего за текущим элементом

p:=Head;

while (p^.next<>nil) do

p:=p^.next;

После выхода из цикла p указывает на последний элемент.

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

C) Проход по списку с двумя указателями

pred:=nil; {pred указывает на предшествующий элемент}

p:=Head; {p – на текущий элемент}

while (p<>nil) and (p^.inf<>A) do

begin

Oper(p);{Какая-либо операция над элементами списка}

pred:=p;

p:=p^.next{Переход к следующему элементу списка}

end;

Данный проход можно использовать:

• Для поиска определенного элемента, тогда в заголовок цикла добавляется соответствующее условие, например, (p^.inf<>A), (p^.inf>0) и т.п.
Если элемент найден, p указывает на него, pred – на предшествующий.
Если не найден, p=nil, pred указывает на последний элемент.

• Для выполнения какой-либо операции над текущим и предшествующими элементами (проверка на возрастание и т.д.). Тогда в тело цикла добавляются операторы или вызов подпрограммы для реализации этой операции.

D) Проход по списку с двумя указателями и с проверкой наличия элемента, следующего за текущим

pred:=nil; {pred указывает на предшествующий элемент}

p:=Head; {p – на текущий элемент}

while (p^.next<>nil)do

begin

pred:=p;

p:=p^.next{Переход к следующему элементу списка}

end;

После выхода из цикла p указывает на последний элемент, pred – на предшествующий элемент.

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

Вставка элемента после заданного элемента

Исходный список Список после вставки элемента

Выполнить проход (a) по списку с проверкой текущего элемента для поиска заданного элемента А.

Если элемент найден, выполнить:

new(q);

q^.inf:=x;

q^.next:=p^.next; //Установка ссылки в новом элементе на элемент, который следовал за элементом А

p^.next:=q; //Установка ссылки в элементе А на новый элемент

end;





Поделиться с друзьями:


Дата добавления: 2016-11-12; Мы поможем в написании ваших работ!; просмотров: 614 | Нарушение авторских прав


Поиск на сайте:

Лучшие изречения:

Люди избавились бы от половины своих неприятностей, если бы договорились о значении слов. © Рене Декарт
==> читать все изречения...

2504 - | 2303 -


© 2015-2025 lektsii.org - Контакты - Последнее добавление

Ген: 0.01 с.