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

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

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.

Перевірку належності елемента списку задає рекурсивна функція

function isinr ( a : integer; lp : Plist ) : boolean;


Реферати!

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







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

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

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