Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
27
Добавлен:
23.03.2015
Размер:
17.38 Кб
Скачать

‹€Ќ…‰Ќ›… ‘Џ€‘Љ€.

Ћб­®ў­лҐ ®ЇҐа жЁЁ.

‘ ¬л© Їа®бв®© бЇ®б®Ў бўп§ вм ¬­®¦Ґбвў® н«Ґ¬Ґ­в®ў - нв® а бЇ®«®¦Ёвм Ёе
«Ё­Ґ©­® ў бЇЁбЄҐ. ‚ н⮬ б«гз Ґ Є ¦¤л© н«Ґ¬Ґ­в ᮤҐа¦Ёв в®«мЄ® ®¤­г ббл«Єг,
бўп§лў ойго ҐЈ® б® б«Ґ¤гойЁ¬ н«Ґ¬Ґ­в®¬ бЇЁбЄ .

Џгбвм вЁЇ T ®ЇЁб ­ б«Ґ¤гойЁ¬ ®Ўа §®¬:

type T = record
Key: integer; { Љ«о祢®Ґ Ї®«Ґ, }
{ ®¤­®§­ з­® Ё¤Ґ­вЁдЁжЁаго饥 н«Ґ¬Ґ­в }
Info: infotype; { €­д®а¬ жЁп, ека ­пй пбп ў 㧫Ґ }
Next: ^T { Џ®«Ґ бўп§Ё, гЄ §лў о饥 ­  б«Ґ¤гойЁ© н«Ґ¬Ґ­в }
end;

‘ЇЁб®Є н«Ґ¬Ґ­в®ў вЁЇ  T ¬®¦­® Ё§®Ўа §Ёвм б«Ґ¤гойЁ¬ ®Ўа §®¬:

ЙНННННННННННННННННННННННННННННННННННННННННННННННННННННННН»
є „ҐбЄаЁЇв®а бЇЁбЄ  REP (ЏаҐ¤бв ў«Ґ­ЁҐ бЇЁбЄ ) є
є ЪДДДДДДДДДДДДДДДДДДДДї є
PV962ДДДЧД>і First ДДДДДДДДДДДЕДї є
є ГДДДДДДДДДДДДДДДДДДДДґ і є
є і Count = 3 і і є
є АДДДДДДДДДДДДДДДДДДДДЩ і є
є ЪДДДДДДДДДДДДДДЩ є
є ЪДДДДДДДЕДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДї є
є і і ’Ґ«® бЇЁбЄ  (Ќ Ў®а ў§ Ё¬®бўп§ ­­ле 㧫®ў) і є
є і ЪДДДДДVДДДДДї і є
є і і 1 і і є
є і ГДДДДДДДДДДДґ і є
є і і €ў ­®ў і і є
є і ГДДДДДДДДДДДґ ЪДДДДДДДДДДДї і є
є і і Next ДДДДДЕДДД>і 2 і і є
є і АДДДДДДДДДДДЩ ГДДДДДДДДДДДґ і є
є і і ЏҐва®ў і і є
є і ГДДДДДДДДДДДґ ЪДДДДДДДДДДДї і є
є і і Next ДДДДДЕДДД>і 3 і і є
є і АДДДДДДДДДДДЩ ГДДДДДДДДДДДґ і є
є і і ‘Ё¤®а®ў і і є
є і ГДДДДДДДДДДДґ і є
є і і Nil і і є
є і АДДДДДДДДДДДЩ і є
є АДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЩ є
ИННННННННННННННННННННННННННННННННННННННННННННННННННННННННј

‡¤Ґбм Ї®Є § ­ Є®­ЄаҐв­л© нЄ§Ґ¬Ї«па бЇЁбЄ , б®бв®п饣® Ё§ ваҐе н«Ґ¬Ґ­в®ў. ‚
Є зҐб⢥ Ё­д®а¬ жЁ®­­®Ј® Ї®«п ў§пв  д ¬Ё«Ёп бв㤥­в ,   Є«о祢®Ґ Ї®«Ґ - ­®-
¬Ґа бв㤥­в  ў ¦га­ «Ґ. ЏаҐ¤бв ў«Ґ­ЁҐ бЇЁбЄ  (REPrezentation) б®бв®Ёв Ё§
¤ҐбЄаЁЇв®а  Ё ⥫ . „ҐбЄаЁЇв®а бвагЄвгал еа ­Ёв ®ЎйЁҐ ¤«п ўбҐ© бвагЄвгал
Ї®«п,   ⥫® бвагЄвгал еа ­Ёв ­ Ў®а ў§ Ё¬®бўп§ ­­ле н«Ґ¬Ґ­в®ў бвагЄвгал.
‘ўп§Ё ¬®Јгв Ўлвм пў­л¬Ё Є Є ў ­ иҐ¬ б«гз Ґ (Ї®«Ґ Next) Ё«Ё ­Ґпў­л¬Ё (­ Ї-
аЁ¬Ґа, б®бҐ¤­ЁҐ н«Ґ¬Ґ­вл бвагЄвгал ¬®Јгв § ­Ё¬ вм б®бҐ¤­ЁҐ п祩ЄЁ Ї ¬пвЁ).
ЏҐаҐ¬Ґ­­ п PV962 - нв® ў­Ґи­пп ЇҐаҐ¬Ґ­­ п, Є®в®а п еа ­Ёв ббл«Єг ­  нЄ§Ґ¬Ї-
«па бЇЁбЄ .
‡ Є®­зЁ¬ ®ЇЁб ­ЁҐ ­ иҐ© бвагЄвгал:

type
infotype = string[20]; { ” ¬Ё«Ёп бв㤥­в  }
groupptr = ^group; { “Є § вҐ«м ­  ЈагЇЇг }
group = record
First: ^T; { “Є § вҐ«м ­  ЇҐаўл© 㧥« бЇЁбЄ  }
Count: byte; { Љ®«ЁзҐбвў® бв㤥­в®ў ў ЈагЇЇҐ }
end;

Љ®­ЄаҐв­л© нЄ§Ґ¬Ї«па бвагЄвгал ®Ўкпў«пҐвбп ў а §¤Ґ«Ґ var:

var
PV962: groupptr;

Ќ® в Є®Ґ ®Ўкпў«Ґ­ЁҐ ­Ґ ᮧ¤ Ґв бЇЁб®Є бв㤥­в®ў ЈагЇЇл,   в®«мЄ® १ҐаўЁ-
агҐв ¬Ґбв® ¤«п гЄ § вҐ«п. ‘®§¤ ­ЁҐ бвагЄвгал ®бгйҐбвў«пҐвбп б Ї®¬®ймо
бЇҐжЁ «м­®© ®ЇҐа жЁЁ-Є®­бвагЄв®а . Ќ §®ўҐ¬ нвг ®ЇҐа жЁо CreateGroup. ‘¬лб«
нв®© ®ЇҐа жЁЁ ®ЇаҐ¤Ґ«пҐвбп б«Ґ¤го饩 бЇҐжЁдЁЄ жЁҐ©:

function CreateGroup: groupptr;
{ Effects: ‚ў®¤Ёв бЇЁб®Є ЈагЇЇл б Є« ўЁ вгал Ё ᮧ¤ Ґв нЄ§Ґ¬Ї«па }
{ бЇЁбЄ  ЈагЇЇл ў Ї ¬пвЁ. ‡ Ї®«­пҐв Ї®«п ¤ҐбЄаЁЇв®а  First }
{ Ё Count }

“ бвагЄвгал ¬®Јгв Ўлвм Ё ¤агЈЁҐ Є®­бвагЄв®ал. ѓагЇЇг ¬®¦­® ᮧ¤ ў вм, ­ ЇаЁ¬Ґа,
­  ®б­®ўҐ Ё­д®а¬ жЁЁ, еа ­п饩бп ў ¬ ббЁўҐ.
„«п ¤Ё­ ¬ЁзҐбЄЁе бвагЄвга, ᮧ¤ ў Ґ¬ле ў ®Ў« бвЁ ЄгзЁ, Ґ¤Ё­б⢥­­л¬ бЇ®-
б®Ў®¬ Ёе ᮧ¤ ­Ёп пў«пҐвбп ¬Ґв®¤ Ї®н«Ґ¬Ґ­в­®© ўбв ўЄЁ. Џа®б⥩訬 бЇ®б®Ў®¬
ўЄ«о祭Ёп ў «Ё­Ґ©­л© бЇЁб®Є пў«пҐвбп ўбв ўЄ  ў ­ з «®. ђҐ «Ё§ жЁп нв®© ®ЇҐ-
а жЁЁ ¬®¦Ґв Ўлвм ўлЇ®«­Ґ­  б«Ґ¤гойЁ¬ ®Ўа §®¬:

procedure InsertFirst(var G: group; Numb: integer; Fio: infotype);
{ Effects: „®Ў ў«пҐв бв㤥­в  б ­®¬Ґа®¬ Numb Ё д ¬Ё«ЁҐ© Fio ў ­ з «® }
{ бЇЁбЄ  ЈагЇЇл G }
var
q: ^T;
begin
new(q); { ‚뤥«Ёвм Ї ¬пвм ў ЄгзҐ Ї®¤ 㧥« бЇЁбЄ  }
q^.Key:=Numb; q^.Info:=Fio; { ‡ Ї®«­Ёвм ҐЈ® Ё­д®а¬ жЁҐ© }
q^.Next:=G.First; { ‚бв ўЁвм ҐЈ® ў ­ з «® бЇЁбЄ  ЈагЇЇл G }
inc(G.Count); G.First:=q; { Њ®¤ЁдЁжЁа®ў вм ¤ҐбЄаЁЇв®а }
end;

’ҐЇҐам ¬®¦­® ॠ«Ё§®ў вм Ё б ¬ Є®­бвагЄв®а CreateGroup.

function CreateGroup: groupptr;
{ Effects: ‚ў®¤Ёв бЇЁб®Є ЈагЇЇл б Є« ўЁ вгал ў ®Ўа в­®¬ Ї®ап¤ЄҐ Ё }
{ ᮧ¤ Ґв нЄ§Ґ¬Ї«па бЇЁбЄ  ЈагЇЇл ў Ї ¬пвЁ. }
var
p: ^T; finish: boolean;
g: groupptr;
begin
new(g);
g^.First:=nil; { Ќ з­Ґ¬ Ї®бв஥­ЁҐ }
g^.Count:=0; { б Їгбв®Ј® бЇЁбЄ  }
finish:=false; { ЏаЁ§­ Є § ўҐа襭Ёп а Ў®вл }
writeln('‘®§¤ ­ЁҐ бЇЁбЄ  ЈагЇЇл ¬Ґв®¤®¬ ўбв ўЄЁ ў ­ з «®:');
writeln(' ‘в㤥­вл ¤®«¦­л ўў®¤Ёвмбп ў ®Ўа в­®¬ Ї®ап¤ЄҐ!');
writeln(' ЏаЁ§­ Є Є®­ж  ўў®¤  - бв㤥­в б ­®¬Ґа®¬ 0 ');
writeln;
while not finish do begin
writeln('‚ўҐ¤ЁвҐ ®зҐаҐ¤­®Ј® бв㤥­в : Numb Ё Fio');
readln(Numb,Fio);
if Numb=0 then
finish:=true
else
InsertFirst(g, Numb, Fio);
end;

end;

ЋЎа вЁвҐ ў­Ё¬ ­ЁҐ, зв® ўў®¤Ёвм бв㤥­в®ў ­г¦­® ў Ї®ап¤ЄҐ, ®Ўа в­®¬ Ёб室­®¬г,
в. Є. ЇаЁ ᮧ¤ ­ЁЁ бЇЁбЄ  ¬Ґв®¤®¬ ўбв ўЄЁ ў ­ з «® бЇЁб®Є Ї®«гз Ґвбп Ё­ўҐавЁ-
а®ў ­­л¬. —в®Ўл ᮧ¤ ­­л© ў Ї ¬пвЁ бЇЁб®Є Ўл« Їа ўЁ«м­л¬ ҐЈ® Ё ­г¦­® Ўл«®
ўў®¤Ёвм ў ®Ўа в­®¬ Ї®ап¤ЄҐ. ќв®в д Єв ­ иҐ« бў®Ґ ®ва ¦Ґ­ЁҐ Ё ў бЇҐжЁдЁЄ жЁЁ
®ЇҐа жЁЁ.
’ Є®© бЇ®б®Ў ᮧ¤ ­Ёп ­Ґ ўбҐЈ¤  㤮ЎҐ­. ‘«Ґ¤®ў вҐ«м­®, ­г¦­® 㬥вм ᮧ¤ -
ў вм «Ё­Ґ©­лҐ бЇЁбЄЁ ¬Ґв®¤®¬ ўбв ўЄЁ ў Є®­Ґж. ќв® ¬®¦­® ᤥ« вм б«Ґ¤гойЁ¬
®Ўа §®¬:

procedure InsertLast(var G: group; Numb: integer; Fio: infotype);
{ Effects: „®Ў ў«пҐв бв㤥­в  б ­®¬Ґа®¬ Numb Ё д ¬Ё«ЁҐ© Fio ў Є®­Ґж
{ бЇЁбЄ  ЈагЇЇл G }
var
p,q: ^T;
begin
new(q); { ‚뤥«Ёвм Ї ¬пвм ў ЄгзҐ Ї®¤ 㧥« бЇЁбЄ  }
q^.Key:=Numb; q^.Info:=Fio; { ‡ Ї®«­Ёвм ҐЈ® Ё­д®а¬ жЁҐ© }
q^.next:=nil; { Ћв¬ҐвЁвм, зв® ®­ ⥯Ґам Ї®б«Ґ¤­Ё© }
if G.First=nil then { ‚бв ўЄ  ў Їгбв®© бЇЁб®Є }
begin
q^.Next:=G.First; { ‚бв ўЁвм ҐЈ® ў ­ з «® бЇЁбЄ  ЈагЇЇл G }
inc(G.Count); G.First:=q; { Њ®¤ЁдЁжЁа®ў вм ¤ҐбЄаЁЇв®а }
end else { ‚бв ўЄ  ў ­ҐЇгбв®© бЇЁб®Є }
begin
p:=G.First; { Џ®ЁбЄ }
while p^.next <> nil do { Ї®б«Ґ¤­ҐЈ® 㧫  }
p:=p^.next; { бЇЁбЄ  }
p^.next:=q; { ‚бв ўЁвм ў Є®­Ґж }
end;
end;

Љ Є ўЁ¤Ё¬ нв®в ¬Ґв®¤ ®Ў« ¤ Ґв а冷¬ ­Ґ¤®бв вЄ®ў. Ђ Ё¬Ґ­­®:
1. ЌҐ®Ўе®¤Ё¬® ЇаЁ Є ¦¤®© ўбв ўЄҐ Їа®ЎҐЈ вм бЇЁб®Є ®в ­ з «  ¤® Є®­ж  ЇаЁ
Ї®ЁбЄҐ Ї®б«Ґ¤­ҐЈ® 㧫  бЇЁбЄ .
2. ЋЎа Ў®вЄ  б«гз п ўбв ўЄЁ ў Їгбв®© бЇЁб®Є Їа®Ёб室Ёв Ё­ зҐ.
ЏҐаўл© ­Ґ¤®бв в®Є ¬®¦­® гбва ­Ёвм ¤®Ў ўЁў ў ¤ҐбЄаЁЇв®а бЇЁбЄ  гЄ § вҐ«м ­ 
Ї®б«Ґ¤­Ё© 㧥« бЇЁбЄ :

group = record
First: ^T; { “Є § вҐ«м ­  ЇҐаўл© 㧥« бЇЁбЄ  }
Last : ^T; { “Є § вҐ«м ­  Ї®б«Ґ¤­Ё© 㧥« бЇЁбЄ  }
Count: byte; { Љ®«ЁзҐбвў® бв㤥­в®ў ў ЈагЇЇҐ }
end;

’ҐЇҐам ॠ«Ё§ жЁп ®ЇҐа жЁЁ ўлЈ«п¤Ёв Їа®йҐ:

procedure InsertLast(var G: group; Numb: integer; Fio: infotype);
{ Effects: „®Ў ў«пҐв бв㤥­в  б ­®¬Ґа®¬ Numb Ё д ¬Ё«ЁҐ© Fio ў Є®­Ґж
{ бЇЁбЄ  ЈагЇЇл G }
var
p,q: ^T;
begin
new(q); { ‚뤥«Ёвм Ї ¬пвм ў ЄгзҐ Ї®¤ 㧥« бЇЁбЄ  }
q^.Key:=Numb; q^.Info:=Fio; { ‡ Ї®«­Ёвм ҐЈ® Ё­д®а¬ жЁҐ© }
q^.next:=nil; { Ћв¬ҐвЁвм, зв® ®­ ⥯Ґам Ї®б«Ґ¤­Ё© }
if G.First=nil then { ‚бв ўЄ  ў Їгбв®© бЇЁб®Є }
begin
q^.Next:=G.First; { ‚бв ўЁвм ҐЈ® ў ­ з «® бЇЁбЄ  ЈагЇЇл G }
inc(G.Count); G.First:=q;
G.Last:=q; { Њ®¤ЁдЁжЁа®ў вм ¤ҐбЄаЁЇв®а }
end else { ‚бв ўЄ  ў ­ҐЇгбв®© бЇЁб®Є }
begin
G.Last^.next:=q; { ‚бв ўЁвм ў Є®­Ґж }
G.Last:=q { Њ®¤ЁдЁжЁа®ў вм ¤ҐбЄаЁЇв®а }
end;
end;

ЋЎа вЁвҐ ў­Ё¬ ­ЁҐ, зв® Ї®«п ¤ҐбЄаЁЇв®а  ў бвагЄвгॠ¤®«¦­л ¬Ґ­пвмбп ЇаЁ Ё§-
¬Ґ­Ґ­ЁЁ б®бв®п­Ёп бвагЄвгал.

Ћ¤­Ё¬Ё Ё§ ­ ЁЎ®«ҐҐ вЁЇЁз­ле ®ЇҐа жЁ© ­ ¤ бЇЁбЄ ¬Ё пў«повбп ®ЇҐа жЁЁ
ўЄ«о祭Ёп Ё г¤ «Ґ­ЁҐ н«Ґ¬Ґ­в®ў бЇЁбЄ ,   в Є¦Ґ ®ЇҐа жЁп Їа®б¬®ва  бЇЁбЄ .
ђ бᬮваЁ¬ б­ з «  ®ЇҐа жЁо ўЄ«о祭Ёп.
ЏаҐ¤Ї®«®¦Ё¬, зв® н«Ґ¬Ґ­в, ­  Є®в®ал© гЄ §лў Ґв ббл«Є  q, ­Ґ®Ўе®¤Ё¬®
ўЄ«озЁвм Ї®б«Ґ н«Ґ¬Ґ­в , ­  Є®в®ал© гЄ §лў Ґв ббл«Є  p. HҐ®Ўе®¤Ё¬лҐ ЇаЁбў -
Ёў ­Ёп §­ зҐ­Ё© ббл«Є ¬ ¤®«¦­л ўлЈ«п¤Ґвм б«Ґ¤гойЁ¬ ®Ўа §®¬:

q^.next:=p^.next; p^.next:=q;

ЋЎа вЁвҐ ў­Ё¬ ­ЁҐ, зв® нвЁ ЇаЁбў Ёў ­Ёп ­Ґ®Ўе®¤Ё¬® ўлЇ®«­пвм Ё¬Ґ­­® ў в Є®¬
Ї®ап¤ЄҐ. ќвг ®ЇҐа жЁо ¬®¦­® Їа®Ё««обваЁа®ў вм б«Ґ¤гойЁ¬ аЁбг­Є®¬:

ЪДДДДДДї ЪДДДДДДї
і і ЪД>і і
ГДДДДДДґ і ГДДДДДДґ
qДД>і і і і і
ГДДДДДДґ і ГДДДДДДґ
і і і і *ДДДЕДї
АДДДДДДЩ і АДДДДДДЩ і
АДДДДДДї ЪДДЩ
ЪДДДДДДї ЪДДДДДДї ЪДДДДДДї і і ЪДДДДДДї
ЪДДДДД>і і ЪДД>і і ЪДД> ЪДДДДД>і і і А>і і ЪДД>
і ГДДДДДДґ і ГДДДДДДґ і і ГДДДДДДґ і ГДДДДДДґ і
і pДД>і і і і і і і pДД>і і і і і і
і ГДДДДДДґ і ГДДДДДДґ і і ГДДДДДДґ і ГДДДДДДґ і
ДЩ і *ДДДЕДДЩ і *ДДДДЕДЩ ДЩ і *ДДДЕДДЩ і *ДДДДЕДЩ
АДДДДДДЩ АДДДДДДЩ АДДДДДДЩ АДДДДДДЩ

ђЁб. 1. ‚Є«о祭ЁҐ 㧫  q Ї®б«Ґ 㧫  p.

…б«Ё вॡгҐвбп ўЄ«о祭ЁҐ ­®ў®Ј® 㧫  q ЇҐаҐ¤ 㧫®¬, ­  Є®в®ал© гЄ §лў Ґв p,
в® Є ¦Ґвбп, зв® н⮠ᤥ« вм б«®¦­ҐҐ, Ї®бЄ®«мЄг ­Ґв ¤®бвгЇ  Є 㧫 ¬,
ЇаҐ¤иҐбвўгойЁ¬ ¤ ­­®¬г. Ћ¤­ Є® Їа®бв®© "ваоЄ" Ї®§ў®«пҐв аҐиЁвм нвг Їа®Ў«Ґ¬г.
ќв®в ваоЄ Ї®Є § ­ ­  ђЁб. 2.

‘®бв®п­ЁҐ да Ј¬Ґ­в  бЇЁбЄ  ¤® ўбв ўЄЁ 㧫  q.
ЪДДДДДДї
і 8 і
ГДДДДДДґ
qДД>і і
ГДДДДДДґ
і і
АДДДДДДЩ

ЪДДДДДДї ЪДДДДДДї ЪДДДДДДї
ЪДД>і 13 і ЪДДДДД>і 27 і ЪДД>і 21 і ЪДД>
і ГДДДДДДґ і ГДДДДДДґ і ГДДДДДДґ і
і і і і pДД>і і і і і і
і ГДДДДДДґ і ГДДДДДДґ і ГДДДДДДґ і
ДДЩ і *ДДДДЕДЩ і *ДДДЕДЩ і *ДДДДЕДЩ
АДДДДДДЩ АДДДДДДЩ АДДДДДДЩ

‘®бв®п­ЁҐ да Ј¬Ґ­в  бЇЁбЄ  Ї®б«Ґ ўбв ўЄЁ 㧫  q.
ЪДДДДДДї
ЪДДДДД>і 27 і
і ГДДДДДДґ
і qДД>і і
і ГДДДДДДґ
і і *ДДДЕДДДДДДДДДДї
і АДДДДДДЩ і
АДДДДДДДДДДДДДДДДДДДДДДДїі
ЪДДДДДДї ЪДДДДДДї іі ЪДДДДДДї
ЪДД>і 13 і ЪДДДДД>і 8 і іАД>і 21 і ЪДД>
і ГДДДДДДґ і ГДДДДДДґ і ГДДДДДДґ і
і і і і pДД>і і і і і і
і ГДДДДДДґ і ГДДДДДДґ і ГДДДДДДґ і
ДДЩ і *ДДДДЕДЩ і *ДДДЕДЩ і *ДДДДЕДЩ
АДДДДДДЩ АДДДДДДЩ АДДДДДДЩ

ђЁб. 2. ‚Є«о祭ЁҐ 㧫  q ЇҐаҐ¤ 㧫®¬ p.

’аоЄ б®бв®Ёв ў ⮬, зв® ­®ў п Є®¬Ї®­Ґ­в  ў ¤Ґ©б⢨⥫쭮бвЁ ўбв ў«пҐвбп
Ї®б«Ґ 㧫  p, ­® § вҐ¬ Їа®Ёб室Ё ®Ў¬Ґ­ §­ зҐ­Ёп¬Ё ¬Ґ¦¤г ­®ўл¬ 㧫®¬ (q^) Ё
㧫®¬, ЇҐаҐ¤ Є®в®ал¬ ­Ґ®Ўе®¤Ё¬® ўлЇ®«­пвм ўбв ўЄг (p^). ќв® ¬®¦­® ¤Ґ« вм ­ 
®б­®ў ­ЁЁ в®Ј®, зв® "бЇЁб®Є - нв® бвагЄвга  б Їа®Ё§ў®«м­л¬ а §¬ҐйҐ­ЁҐ¬ Ё
Ї®б«Ґ¤®ў вҐ«м­®© ®Ўа Ў®вЄ®©". ’. Ґ. ¤«п бЇЁбЄ  ў ¦Ґ­ «®ЈЁзҐбЄЁ© Ї®а冷Є
б«Ґ¤®ў ­Ёп н«Ґ¬Ґ­в®ў,   ­Ґ дЁ§ЁзҐбЄЁҐ  ¤аҐб  Ёе а §¬ҐйҐ­Ёп. ђҐиҐ­ЁҐ ¬®¦Ґв
Ўлвм Ї®«г祭® б Ї®¬®ймо б«Ґ¤го饣® да Ј¬Ґ­в  Їа®Ја ¬¬л:

new(q); q^:=p^; p^.key:=k; p^.next:=q;

‡¤Ґбм k - нв® Є«оз ўбв ў«пҐ¬®Ј® н«Ґ¬Ґ­в .

’ҐЇҐам а бᬮваЁ¬ Їа®жҐбб г¤ «Ґ­Ёп Ё§ бЇЁбЄ . “¤ «Ґ­ЁҐ н«Ґ¬Ґ­в ,
б«Ґ¤го饣® §  㧫®¬ p ®зҐўЁ¤­® Ё ¬®¦Ґв Ўлвм ўлЇ®«­Ґ­® б«Ґ¤гойЁ¬ да Ј¬Ґ­в®¬
Їа®Ја ¬¬л:

r:=p^.next; p^.next:=r^.next; r^.next:=q; q:=r;

‡¤Ґбм г¤ «Ґ­ЁҐ Ё§ ®¤­®Ј® бЇЁбЄ  Ї®Є § ­® ў Є®¬ЎЁ­ жЁЁ б ¤®Ў ў«Ґ­ЁҐ¬
г¤ «пҐ¬®Ј® н«Ґ¬Ґ­в  ў ¤агЈ®© бЇЁб®Є Ї®б«Ґ 㧫  q. ќвг ®ЇҐа жЁо Ё««обваЁагҐв
ђЁб. 3.

‘®бв®п­ЁҐ да Ј¬Ґ­в  бЇЁбЄ  ¤® г¤ «Ґ­Ёп 㧫 , а бЇ®«®¦Ґ­­®Ј® Ї®б«Ґ p.
ЪДДДДДДї ЪДДДДДДї
ЪДДДДД>і і ЪДД>і і ЪДД>
і ГДДДДДДґ і ГДДДДДДґ і
і qДД>і і і і і і
і ГДДДДДДґ і ГДДДДДДґ і
ДЩ і *ДДДЕДДЩ і *ДДДДЕДЩ
АДДДДДДЩ АДДДДДДЩ

ЪДДДДДДї ЪДДДДДДї ЪДДДДДДї
ЪДДДДД>і і ЪДД>і і ЪДД>і і ЪДД>
і ГДДДДДДґ і ГДДДДДДґ і ГДДДДДДґ і
і pДД>і і і і і і і і і
і ГДДДДДДґ і ГДДДДДДґ і ГДДДДДДґ і
ДЩ і *ДДДЕДДЩ і *ДДДДЕДЩ і *ДДДДЕДЩ
АДДДДДДЩ АДДДДДДЩ АДДДДДДЩ

‘®бв®п­ЁҐ да Ј¬Ґ­в  бЇЁбЄ  Ї®б«Ґ г¤ «Ґ­Ёп 㧫 , а бЇ®«®¦Ґ­­®Ј® Ї®б«Ґ p,
Ё ¤®Ў ў«Ґ­Ёп ҐЈ® ў ¤агЈ®© бЇЁб®Є Ї®б«Ґ 㧫 , а бЇ®«®¦Ґ­­®Ј® Ї®б«Ґ q.

ЪДДДДДДї ЪДДДДДДї
ЪДДДДД>і і Ъ>і і ЪДД>
і ГДДДДДДґ і ГДДДДДДґ і
і qДД>і і і і і і
і ГДДДДДДґ і ГДДДДДДґ і
ДЩ і *ДДДЕДї і і *ДДДДЕДЩ
АДДДДДДЩ і і АДДДДДДЩ
ЪДДДДДЩ АДДї
ЪДДДДДДї і ЪДДДДДДї і ЪДДДДДДї
ЪДДДДД>і і АД>і і і Ъ>і і ЪДД>
і ГДДДДДДґ ГДДДДДДґ і і ГДДДДДДґ і
і pДД>і і і і і і і і і
і ГДДДДДДґ ГДДДДДДґ і і ГДДДДДДґ і
ДЩ і *ДДДЕДДї і *ДДДДЕДЩ і і *ДДДДЕДЩ
АДДДДДДЩ і АДДДДДДЩ і АДДДДДДЩ
АДДДДДДДДДДДДДДЩ

ђЁб. 3. “¤ «Ґ­ЁҐ Ё§ бЇЁбЄ  Ё ўЄ«о祭ЁҐ ў ¤агЈ®© бЇЁб®Є.

ЏаЁ а Ў®вҐ б® бЇЁбЄ ¬Ё аЁбг­ЄЁ ®зҐ­м Ї®«Ґ§­л Ё Ї®¬®Ј ов Ё§ЎҐ¦ вм ¤®б ¤­ле
®иЁЎ®Є. ‚ ¦­® Їа®бв ўЁвм ­  аЁбг­ЄҐ Ї®а冷Є ўлЇ®«­Ґ­Ёп Ё§¬Ґ­Ґ­Ё© ббл«®Є, в.
Є. ­ аг襭ЁҐ Їа ўЁ«м­®Ј® Ї®ап¤Є  ¬®¦Ґв ЇаЁўҐбвЁ Є Ї®вҐаҐ ббл«®Є ­  ҐйҐ ­Ґ
ЇаЁўп§ ­­лҐ 㧫л.
’аг¤­ҐҐ г¤ «Ёвм б ¬ гЄ § ­­л© н«Ґ¬Ґ­в (  ­Ґ б«Ґ¤гойЁ© §  ­Ё¬),
Ї®бЄ®«мЄг ¬л бв «ЄЁў Ґ¬бп б в®© ¦Ґ Їа®Ў«Ґ¬®©, зв® Ё ЇаЁ ўЄ«о祭ЁЁ ЇҐаҐ¤ p:
ў®§ўа в Є н«Ґ¬Ґ­вг, Є®в®ал© ЇаҐ¤иҐбвўгҐв гЄ § ­­®¬г, ­Ґў®§¬®¦Ґ­. H® ¬«®¦­®
г¤ «Ёвм Ї®б«Ґ¤гойЁ© н«Ґ¬Ґ­в, ЇаҐ¤ў аЁвҐ«м­® ЇҐаҐб« ў ҐЈ® §­ зҐ­ЁҐ Ў«Ё¦Ґ Є
­ з «г бЇЁбЄ . ќв® ¤®ў®«м­® Їа®бв®© Ё ®зҐўЁ¤­л© ЇаЁҐ¬, ­® ҐЈ® ¬®¦­®
ЇаЁ¬Ґ­Ёвм в®«мЄ® ў ⮬ б«гз Ґ, Є®Ј¤  г 㧫  p Ґбвм Ї®б«Ґ¤гойЁ© н«Ґ¬Ґ­в, в.
Ґ. ®­ ­Ґ пў«пҐвбп Ї®б«Ґ¤­Ё¬ ў бЇЁбЄҐ.

’ҐЇҐам а бᬮваЁ¬ ®б­®ў­го ®ЇҐа жЁо, ЁбЇ®«м§гҐ¬го ЇаЁ ®Ўа Ў®вЄҐ
бЇЁбЄ®ў,   Ё¬Ґ­­® ®ЇҐа жЁо Їа®е®¤  Ї® бЇЁбЄг (ЁвҐа жЁо Ї® 㧫 ¬ бЇЁбЄ ).
ЏаҐ¤Ї®«®¦Ё¬, зв® ®ЇҐа жЁп P(x) ¤®«¦­  ўлЇ®«­пвмбп б Є ¦¤л¬ н«Ґ¬Ґ­в®¬ бЇЁбЄ .
ќвг § ¤ зг ¬®¦­® ўлЇ®«­Ёвм б«Ґ¤гойЁ¬ ®Ўа §®¬:

cur:=L.First;
while cur<>nil do begin
P(cur^);
cur:=cur^.next;
end;

ЋзҐ­м з бв® ЁбЇ®«м§гҐ¬®© ®ЇҐа жЁҐ© ¤«п «Ё­Ґ©­ле бЇЁбЄ®ў пў«пҐвбп Ї®ЁбЄ
ў бЇЁбЄҐ н«Ґ¬Ґ­в  б § ¤ ­­л¬ Є«о箬 k0. Џ®ЁбЄ ўҐ¤Ґвбп бва®Ј® Ї®б«Ґ¤®ў вҐ«м­®.
Џ®ЁбЄ ¬®¦Ґв § Є®­зЁвмбп Ї® ¤ўг¬ ЇаЁзЁ­ ¬: «ЁЎ®, Є®Ј¤  н«Ґ¬Ґ­в ­ ©¤Ґ­, «ЁЎ®
Є®Ј¤  ¤®бвЁЈ­гв Є®­Ґж бЇЁбЄ . ЏҐаў п Ї®ЇлвЄ  аҐиҐ­Ёп нв®© § ¤ зЁ ¬®¦Ґв
ЇаЁўҐбвЁ ­ б Є б«Ґ¤го饬г да Ј¬Ґ­вг Їа®Ја ¬¬л:

cur:=L.First;
while (p<>nil) and (cur^.key<>k0) do cur:=cur^.next;

Ћ¤­ Є® ў­Ё¬ вҐ«м­л©  ­ «Ё§ нв®Ј® да Ј¬Ґ­в  ўлпў«пҐв б«Ґ¤гойго ®иЁЎЄг: ЇаЁ
cur=nil ­Ґ бгйҐбвўгҐв Ё cur^. ‘«Ґ¤®ў вҐ«м­®, ўлзЁб«Ґ­ЁҐ гб«®ўЁп ®Є®­з ­Ёп
¬®¦Ґв Ї®вॡ®ў вм ®Ўа йҐ­Ёп Є ­ҐбгйҐбвўго饩 ЇҐаҐ¬Ґ­­®©, зв® ¬®¦Ґв ЇаЁўҐбвЁ
Є  ў аЁ©­®¬г § ўҐа襭Ёо Їа®Ја ¬¬л. ќв® ¬®¦­® ЁбЇа ўЁвм ўўҐ¤Ґ­ЁҐ¬ «®ЈЁзҐбЄ®©
ЇҐаҐ¬Ґ­­®© ¤«п Ё­¤ЁЄ жЁЁ гб«®ўЁп ўл室  Ё§ жЁЄ« . Њл ЇаЁе®¤Ё Є б«Ґ¤го饩
ўҐабЁЁ Їа®Ја ¬¬л:

var Found: boolean;
...
Finish:=false;
cur:=L.First;
while not Finish do
if cur<>nil then
if cur^.Key = k0 then Finish:=true
else cur:=cur^.next
else Finish:=true;

’ Є®© жЁЄ« ¬®¦Ґв § Є®­зЁвмбп Ї® ¤ўг¬ ЇаЁзЁ­ ¬:
1) ЁбЄ®¬л© н«Ґ¬Ґ­в ­ ©¤Ґ­;
2) бЇЁб®Є § Є®­зЁ«бп Ё §­ зЁв ЁбЄ®¬®Ј® н«Ґ¬Ґ­в  ў бЇЁбЄҐ ­Ґв (­Ґг¤ з­л©
Ї®ЁбЄ).
Џ®н⮬㠯®б«Ґ в Є®Ј® жЁЄ«  ­Ґ®Ўе®¤Ё¬®  ­ «Ё§Ёа®ў вм १г«мв в Ї®ЁбЄ . ќв®
¬®¦­® ᤥ« вм б«Ґ¤гойЁ¬ ®Ўа §®¬:

if cur=nil then << ­Ґг¤ з­л© Ї®ЁбЄ >>
else << г¤ з­л© Ї®ЁбЄ >>


Соседние файлы в папке LINESTR