Добавил:
Upload
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:AlgStr / Библиотека / LINESTR / LINELIST
.TXT‹€Ќ…‰Ќ›… ‘Џ€‘Љ€.
Ћб®ўлҐ ®ЇҐа жЁЁ.
‘ ¬л© Їа®бв®© бЇ®б®Ў бўп§ вм ¬®¦Ґбвў® н«Ґ¬Ґв®ў - нв® а бЇ®«®¦Ёвм Ёе
«ЁҐ©® ў бЇЁбЄҐ. ‚ н⮬ б«гз Ґ Є ¦¤л© н«Ґ¬Ґв ᮤҐа¦Ёв в®«мЄ® ®¤г ббл«Єг,
бўп§лў ойго ҐЈ® б® б«Ґ¤гойЁ¬ н«Ґ¬Ґв®¬ бЇЁбЄ .
Џгбвм вЁЇ 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