КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Удаление элемента из списка
End. Begin End Begin Then Repeat Begin Begin Repeat Begin 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 Список: Программа: Program Spisok; Uses CRT; Type TPoint = ^TElement; TElement = Record Inf: Integer; Next: TPoint; End; Var head, q, r: TPoint; posle: Integer; flag: 0..1; флаг поиска (0 – элемент не найден) Procedure Formir_spisok; 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); End; Procedure Vyvod_spisok; процедура вывода списка q:= head^.Next; текущую ссылку – на первый элемент While (q <> Nil) Do пока не конец списка Write(q^.Inf:5); выводим очередной элемент q:= q^.Next; ссылку – на следующий элемент End; WriteLn; End; Begin головная программа ClrScr; WriteLn(‘Создание списка’); WriteLn; Formir_spisok; обращение к процедуре создания списка WriteLn(‘Введено чисел: ’, head^.Inf); WriteLn(‘Введенные числа:’); Vyvod_spisok; обращение к процедуре вывода списка WriteLn; WriteLn(‘Вставка элементов в список’); WriteLn; New(r); WriteLn; Write(‘Новый элемент: ’); ReadLn(r^.Inf); информационная часть нового элемента If (r^.Inf = 0) если она равна нулю, Then Break; то выходим из цикла ввода Write(‘После какого: ’); ReadLn(posle); 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; и продолжаем цикл ввода End; r^.Next:= q^.Next; если элемент найден, q^.Next:= r; то вставляем его в список head^.Inf:= head^.Inf + 1; увеличиваем счетчик элементов на единицу WriteLn; WriteLn(‘Новый список:’); Vyvod_spisok; выводим новый список Until (r^.Inf = 0); окончание цикла ввода WriteLn(‘Список:’); Vyvod_spisok; выводим окончательный список ReadLn;
Пусть имеется связный список из трех чисел : 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 то выходим из цикла поиска,
Дата добавления: 2014-01-06; Просмотров: 329; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |