Використання вільної пам'яті, Детальна інформація
Використання вільної пам'яті
begin
pp := h; h := h^.next;
dispose ( pp ); pp := nil
end
else
begin
p := h; stop := false;
while ( p^.next <> nil ) and not stop do
if p^.next^.v = s then stop := true
else p := p^.next;
{ p^.next = nil – елемента із заданим значенням немає або }
{ stop = true – треба вилучити елемент p^.next^ }
if stop then
begin
pp := p^.next; p^.next := pp^.next;
dispose ( pp ); pp := nil
end
end
end;
4. Списки як рекурсивні об'єкти
Нехай a позначає довільний елемент множини A. Списки її елементів можна означити рекурсивно, а саме:
порожній список <> є списком;
якщо позначає список, то < a > також є списком.
За цим означенням список складається з головного елемента й підсписку, який сам є списком. Відтворимо рекурсивну природу списків означенням типу зв'язаних списків елементів типу T :
type Plist = ^List;
List = record
v : T; subl : Plist
end
Список ідентифікується вказівником на його головний елемент. Але й кожний наступний елемент, ідентифікований полем subl попереднього, вважається головним елементом підсписку. Порожній список указується значенням nil. Виразимо рекурсивно обробку списку за допомогою обробки головного елемента й підсписку, вважаючи для визначеності, що T = integer.
Перевірку належності елемента списку задає рекурсивна функція
pp := h; h := h^.next;
dispose ( pp ); pp := nil
end
else
begin
p := h; stop := false;
while ( p^.next <> nil ) and not stop do
if p^.next^.v = s then stop := true
else p := p^.next;
{ p^.next = nil – елемента із заданим значенням немає або }
{ stop = true – треба вилучити елемент p^.next^ }
if stop then
begin
pp := p^.next; p^.next := pp^.next;
dispose ( pp ); pp := nil
end
end
end;
4. Списки як рекурсивні об'єкти
Нехай a позначає довільний елемент множини A. Списки її елементів можна означити рекурсивно, а саме:
порожній список <> є списком;
якщо
За цим означенням список складається з головного елемента й підсписку, який сам є списком. Відтворимо рекурсивну природу списків означенням типу зв'язаних списків елементів типу T :
type Plist = ^List;
List = record
v : T; subl : Plist
end
Список ідентифікується вказівником на його головний елемент. Але й кожний наступний елемент, ідентифікований полем subl попереднього, вважається головним елементом підсписку. Порожній список указується значенням nil. Виразимо рекурсивно обробку списку за допомогою обробки головного елемента й підсписку, вважаючи для визначеності, що T = integer.
Перевірку належності елемента списку задає рекурсивна функція
The online video editor trusted by teams to make professional video in
minutes
© Referats, Inc · All rights reserved 2021