Використання вільної пам'яті, Детальна інформація
Використання вільної пам'яті
isin := ( h^.v = s )
end
end
Оскільки список починається елементом pss^, то виклик функції має вигляд isin(s, pss). Зміна вказівника h при виконанні процедури не міняє значення pss і не веде до втрати зв'язку з головою списку, оскільки h є параметром-значенням.
Рядки, представлені в списку, друкуються з його початку просуванням по елементах до кінця:
procedure writelst ( h : TPle );
begin
while h <> nil do
begin writeln ( h^.v ); h := h^.next end
end
Зберемо означення типів str, TPle, Tle та наведені підпрограми в модуль strlist, і запишемо розв'язання задачі (1) у вигляді програми namlist1:
program namlist1(input, output);
uses strlist;
var pss : TPle; s : str;
begin
pss := nil; readln ( s );
while s <> '' do
begin
if not isin ( s, pss ) then add ( s, pss );
readln ( s )
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
end
end
Оскільки список починається елементом pss^, то виклик функції має вигляд isin(s, pss). Зміна вказівника h при виконанні процедури не міняє значення pss і не веде до втрати зв'язку з головою списку, оскільки h є параметром-значенням.
Рядки, представлені в списку, друкуються з його початку просуванням по елементах до кінця:
procedure writelst ( h : TPle );
begin
while h <> nil do
begin writeln ( h^.v ); h := h^.next end
end
Зберемо означення типів str, TPle, Tle та наведені підпрограми в модуль strlist, і запишемо розв'язання задачі (1) у вигляді програми namlist1:
program namlist1(input, output);
uses strlist;
var pss : TPle; s : str;
begin
pss := nil; readln ( s );
while s <> '' do
begin
if not isin ( s, pss ) then add ( s, pss );
readln ( s )
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
The online video editor trusted by teams to make professional video in
minutes
© Referats, Inc · All rights reserved 2021