русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Удаление элемента из списка


Дата добавления: 2013-12-23; просмотров: 804; Нарушение авторских прав


End.

ReadLn;

WriteLn;

End;

Begin

End

Begin

Then

ReadLn(posle);

WriteLn;

New(r);

Repeat

WriteLn;

WriteLn;

WriteLn;

ClrScr;

End;

WriteLn;

End;

Begin

Begin

End;

Repeat

Begin

Procedure Formir_spisok;

End;

Uses CRT;

Program Spisok;

5 9 -3 -2 17 -12 15

5 9 -3 -2 17 -12 15

Такого элемента в списке нет

5 9 -3 -2 17 -12 15

5 -3 -2 17 -12 15

5 -3 -2 17 -12

Вставка элементов в список

5 -3 17 -12

Создание списка

Первое число: -12

Следующее число: 17

Следующее число: -3

Следующее число: 5

Следующее число: 0

Введено чисел: 4

Введенные числа:

Новый элемент: -2

После какого: -3

Новый список:

Новый элемент: 15

После какого: -12

Новый список:

Новый элемент: 9

После какого: 5

Новый список:

Новый элемент: 20

После какого: 10

Список:

Новый элемент: 0

Список:

Программа:

Type TPoint = ^TElement;

TElement = Record

Inf: Integer;

Next: TPoint;

Var head, q, r : TPoint;

posle: Integer;

flag: 0..1; флаг поиска (0 – элемент не найден)

New(head); head -указатель на голову списка



head^.Inf := 0;количество элементов в списке

head^.Next := Nil; списка еще нет

New(q); формируем первый элемент

Write(‘Первое число: ’);

ReadLn(q^.Inf);вводим его информационную часть

If (q^.Inf=0)если ввели 0,

Then Exit; то выходим из процедуры

head^.Inf := 1;в списке один элемент

q^.Next := head^.Next;помещаем его в голову списка

head^.Next := q; в head^.Next адрес головы списка

New(q);формируем очередной элемент

Write(‘Очередное число: ’);

ReadLn(q^.Inf);вводим его информационную часть

If (q^.Inf=0) если ввели 0,

Then Break;то выходим из цикла ввода

head^.Inf := head^.Inf + 1;увеличиваем счетчик элементов на 1

q^.Next := head^.Next;вставляем элемент в голову списка

head^.Next := q;в head^.Next адрес головы списка

Until (q^.Inf = 0);

Procedure Vyvod_spisok; процедура вывода списка

q := head^.Next;текущую ссылку – на первый элемент

While (q <> Nil) Doпока не конец списка

Write(q^.Inf:5); выводим очередной элемент

q := q^.Next; ссылку – на следующий элемент

Begin головная программа

WriteLn(‘Создание списка’);

Formir_spisok; обращение к процедуре создания списка

WriteLn(‘Введено чисел: ’, head^.Inf);

WriteLn(‘Введенные числа:’);

Vyvod_spisok; обращение к процедуре вывода списка

WriteLn(‘Вставка элементов в список’);

Write(‘Новый элемент: ’);

ReadLn(r^.Inf); информационная часть нового элемента

If (r^.Inf = 0) если она равна нулю,

Then Break; то выходим из цикла ввода

Write(‘После какого: ’);

flag := 0; флаг поиска равен нулю – элемент пока не найден

q := head^.Next; поисковый указатель q – в голову списка

While (q <> Nil) Do пока не конец списка

If (q^.Inf = posle) ищем нужный элемент

flag := 1; если элемент найден:

Break; выходим из цикла поиска

Else q := q^.Next; иначе делаем шаг по списку

If (flag = 0) Then если элемент не найден:

WriteLn(‘Такого элемента в списке нет’);

WriteLn(‘Список:’);

Vyvod_spisok; выводим список

Continue; и продолжаем цикл ввода

r^.Next := q^.Next; если элемент найден,

q^.Next := r; то вставляем его в список

head^.Inf := head^.Inf + 1; увеличиваем счетчик элементов на единицу

WriteLn(‘Новый список:’);

Vyvod_spisok; выводим новый список

Until (r^.Inf = 0); окончание цикла ввода

WriteLn(‘Список:’);

Vyvod_spisok; выводим окончательный список

Пусть имеется связный список из трех чисел: 5, -3, -12.

Список сформирован, и значениями переменных head и q является ссылка на первый элемент списка:

 

Необходимо удалить из списка элемент -3.

Для удаления (исключения) существующего элемента из списка выполняются следующие действия:

1. указатели q (поисковый) и r (отстает от поискового на шаг) ставим в голову списка:

q := head^.Next; на первый элемент списка

r := head; на указатель на голову списка

2. в списке отыскивается удаляемый элемент, для этого используем поисковый указатель q :

While (q <> Nil) Do пока не дошли до конца списка

If (q^.Inf = -3) если нашли нужный элемент,

Then Break то выходим из цикла поиска,



<== предыдущая лекция | следующая лекция ==>
Добавление нового элемента в список | Сортированные списки


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.005 сек.