Зворотний зв'язок

Використання вільної пам'яті

end;

writelst ( pss )

end.

3.3. Додавання до упорядкованого списку

Розглянемо тепер задачу про друкування прізвищ із умовою (2), тобто в лексикографічному порядку. Нехай знак < позначає упорядкування елементів деякого типу T, зокрема, лексикографічне упорядкування рядків. Послідовність a1, a2, … , an елементів типу T називається упорядкованою, якщо n=1, або n>1 і ai
Розглянемо таке додавання нового рядка s до упорядкованого списку ss, що його результатом є упорядкований список.

Вставка в порожній список дає упорядкований список із елемента ss1.

Якщо s.

Якщо s>ss1, то відшукати такий елемент списку ssk, що

(ssk
В обох цих випадках s вставляється після елемента ssk.

Нехай результат лексикографічного порівняння рядків s1 і s2 обчислюється при виконанні виклику функції lt(s1, s2) – див. задачу 12.9.

Скористаємося процедурою створення нового елемента списку Newelem. Аргументами в її виклику є вказівник типу Tple та вираз типу str. За виконання її виклику створюється новий елемент списку, в його поля записуються значення аргументів, після чого аргумент-вказівник установлюється на цей елемент:

procedure newelem(var p : Tple; z : str);

var pp : Tple;

begin

new(pp); pp^.next:=p; pp^.v:=z; p:=pp

end;

З використанням цієї процедури наведений алгоритм уточнюється такою процедурою:

procedure addord ( s : str; var h : TPle );

var p, pp : TPle; stop : boolean;

begin

if h = nil then {Список порожній – створюється новий елемент }


Реферати!

У нас ви зможете знайти і ознайомитися з рефератами на будь-яку тему.







Не знайшли потрібний реферат ?

Замовте написання реферату на потрібну Вам тему

Замовити реферат