![]() Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву ![]() Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Создание прямого односвязного спискаСодержание книги Поиск на нашем сайте
В прямом односвязном линейном списке связь устанавливается от i-го элемента к i+1.
В список можно добавлять элементы и удалять из списка.
Пример1: Создать односвязный линейный список, содержащий числа. Сложить положительные элементы списка.
Program Spisok11; {создать односвязный линейный список, содержащий числа. Сложить положительные элементы списка.} Uses Crt; Type aa =^spisok; spisok = record zn:integer; next:aa; end; Var s,p:aa; i,zna,kol, sum:integer; // процедура добавление элемента в список Procedure AddSp; var q:aa; Begin if s=nil then //создается первый элемент Begin New(p); s:=p End Else begin q:=p; New(p); q^.next:=p; end; p^.next:=nil; Writeln('Введите значение',i,' элемента'); readln(zna); p^.zn:=zna; end; // функция определения конца списка Function GoNext:boolean; Begin if p^.next <> nil then Begin p:=p^.next; GoNext:=true; End else GoNext:=false end; //функция освобождения памяти и вывода элементов списка Function DisposeAll:boolean; var q:aa; Begin p:=s; while p<>nil do Begin q:=p^.next; write(p^.zn,' '); Dispose(p); p:=q; end; writeln; writeln('Освобождение памяти...'); DisposeAll:=true; end;
begin //операторы основной программы
s:=nil; // nil- признак конца списка writeln('Введите количество элементов списка'); readln(kol); for i:=1 to kol do //создание списка Addsp;
p:=s; //установка р на начало списка Repeat if p^.zn>0 then sum:=sum+p^.zn; //суммируем положительные элементы until not gonext;
if sum=0 then writeln('в списке нет полож. элементов') else writeln('sum=',sum); DisposeAll; End.
Результаты решения задачи:
Введите количество элементов списка Введите значение1 элемента Введите значение2 элемента Введите значение3 элемента Введите значение4 элемента -56 sum=8 3 5 0 -56 Освобождение памяти...
Методические указания по методике отладки программ в интегрированной среде PascalABC
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Последнее изменение этой страницы: 2016-08-15; просмотров: 326; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 52.14.56.234 (0.009 с.) |