Создание сортированного списка

Первое число: 5

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

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

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

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

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

Список:

3 5 7 12

Программа:

Program Sort_spisok;

Uses CRT;

Type TPoint = ^TElement;

TElement = Record

Inf: Integer;

Next: TPoint;

End;

Var head, q, r, v : TPoint;

Procedure Formir_sort_spisok;

Begin

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

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

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

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

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

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

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

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

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

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

head^.Next := v; в head^.Next адрес первого элемента списка

New(r); r - поисковая ссылка

Repeat

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

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

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

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

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

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

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

q := head; q – отстает на шаг

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

If (r^.Inf <= v^.Inf) Then если текущий еще меньше

Begin вставляемого,

q := r; то подтягиваем q к r

r := r^.Next; и делаем шаг по списку

End

Else Break;иначе выходим из цикла поиска-место найдено

v^.Next := q^.Next; ставим новый элемент на место

q^.Next := v;

Until (v^.Inf = 0);

End;

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

Begin

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

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

Begin

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

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

End;








Дата добавления: 2015-08-08; просмотров: 504;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

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

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.007 сек.