!!"#$%&'%(%'$%&)*++,-*++. /"#0%"'%)12&)3%4&5%"$2#6)7%&)8942'2& 12()82&'):;:<)=>"#?@A&2#6)"#)7"%)"(B%&4$"C%)D&E6&4(("%&2#6F 12*+345*6748+924+:$*+;(#$)$*+<=28>6?*$85+28+@24+2,%4*#&2A4+B*C5*#,,24*$85D.+E4)48+924+)2F? @24)4+"28G42)4+AC(()&H8@25+$8@+#$>,4*')#,+@$*F?I+34AC*+924+,2&+@4*+J4#*342&$85+@4*+K$>5#348 34528848L!. B*6>48+924+@24+MC(()&H8@25'42&+N?*4*+O8&4*(#548.+P24+;(#$)$*+$,>#))&L Q+-+P4F'3(H&&4*I Q+!+RC*,3(#&&+>6*+4284+J4)F?42825$85+>6*+@#)+R28#8:#,&I Q+@24)4+"28G42)4+:$*+J4#*342&$85I Q+S+K$>5#348+T942&4+-+Q+942&4+-!UI Q+@24+V$))QW454(8+@4)+B*C5*#,,24*)&2(). -. R6((48+924I+;279#+924+,2&+@4*+J4#*342&$85+@4*+K$>5#348+34528848I+>C(548@4+942&48+@4)+ ;(#$)$*4X4,%(#*4)+#$)L #U <2+12%=2>?;@A662#+,2&+Y#,48I+K8)F?*2>&+)CG24+V#&*2'4(8$,,4*.+B5#?+2#2,%C+2%79# 12#%D;05;2%5"-%;2+12,%=2>?;@A662#,%1+2%79,%E/,2,%;25#;2+6262,%D"-05;2,F 3U R#(()+924+4284+Z42(8#?,434)F?42825$85+>6*+@#)+R28#8:#,&+G68)F?48I+>6((48+924+32&&4 @#)+48&)%*4F?48@4+RC*,3(#&&+#$)+$8@+34(#))48+924+4)+28+@4*+;(#$)$*.+924+4*?#(&48+4) @#88+:$)#,,48+,2&+@4*+;C**4'&$*+#354)&4,%4(&+:$*6F'. G"#%H2,,%C+2%1+2%=2>?;@A662#%79@@$6A,1+0%5"$02-.@@6%/5;2,I%?J,,2,%H+#%E/#2%!@5"K $"#%?9##+0+2#2,L% [. 9F?*42348+924+N?*4+E\)$8548+#$>+@48+>*4248+Z42(+@4*+942&4+$8&4*?#(3+@4*+K$>5#34+3:G.+ #$>+@24+(44*48+RC(54)42&48.+9C((&4+@24)+82F?&+,\5(2F?+)428I+)C+A4*,4*'48+924I+#$>+G4(F?4*+ 942&4+@24+E\)$85+:$+>28@48+2)&.+ C6#2+>/2,%C+2%",0.@6+02%MJ$",02,%12"6@+>/%1"#>/L+T9C((&48+924+,4?*+#()+4284+E\)$85+ :$+4284*+K$>5#34+#354348I+)C+G2*@+8$*+4284+@#AC8+'C**2524*&+]+$8@+82F?&+8C&G48@25+@24+ 34))4*4.U ^. 9F?*42348+924+#$>+_4@4)+AC8+N?848+34)F?*243484+J(#&&+C348+(28')+N?*48+Y#,48+$8@+C348+ *4F?&)+N?*4+V#&*2'4(8$,,4*.+1488+924+G42&4*4+425484+J(H&&4*+348$&:&+?#348I+?4>&48+924+ #$F?+@24)4I+,2&+Y#,48+$8@+V#&*2'4(8$,,4*+A4*)4?48I+#8+N?*+;(#$)$*4X4,%(#*.+Y$*+ @#88+G4*@48+#$F?+E\)$8548+#$74*?#(3+N?*4)+;(#$)$*4X4,%(#*4)+54G4*&4&` a. Y4348+$834)F?*243484,+;C8:4%&%#%24*+$8@+9F?*423:4$5+TR6((4*+C@4*+;$54()F?*4234*I+ 348$&:48+924+?2+,2,%<@2+$6+-6`U+)28@+?2+,2%H2+62#2,%N+@-$3+662@+:$54(#))48.+P24+ V$))QW454(8+@4)+B*C5*#,,24*)&2()+>28@48+924+2,+K8)F?($))+#8+@24+K$>5#348)&4(($85. S. =)+)28@+,#X2,#(+[-+B$8'&4+4**42F?3#*.+924+?#348+@24+;(#$)$*+)2F?4*+@#88+34)@48I+ G488+924+,28@4)&48)+!S+B$8'&4+4**42F?&+?#348.!"&)0@#'GA%#)HA#%#)5%")7%&)3%4&5%"$2#6)7%&)8942'2&)C"%9)>&?E96I
942&4L+- D"-05;2%& O(P&%8",?62Q b454348+)4248+>c(548@4+zc%@4>282&2c848+>6*+428+r4(@+,2&+n8&454*qd#?(48l const GRENZE = 10; type tindex = 1.. GRENZE; tfeld = array[tindex] of integer; #U 9F?*42348+924+4284+R$8'&2C8I+@24+634*%*6>&I+C3+428+2?*+634*543484)+R4(@+AC,+Zc%+tFeld+#$>)&42Q 548@+)C*&24*&+2)&I+@.?.+C3+'4284)+@4*+=(4,48&4+'(4284*+#()+)428+MC*5H854*4(4,48&+2)&.+ M4*G48@48+924+@#342+4284+RC*Q9F?(42>4+:$,+P$*F?(#$>+@4)+R4(@4)` M4*G48@48+924+G42&4*?28+>C(548@48+R$8'&2C8)'C%>L function istsortiert(var infeld: tfeld): Boolean; {Ergebnis ist true, genau dann wenn infeld aufsteigend sortiert ist, also keines der Elemente kleiner als sein Vorgänger ist.} 3U P#)+M4*G48@48+4284*+RC*Q9F?(42>4I+G24+28+Z42(+#U+54>C*@4*&I+4*,\5(2F?&+:G#*+4284+'$*:4+E\)$85I 2)&+_4@CF?+>6*+@24)4)+B*C3(4,+82F?&+C%&2,#(+2,+"283(2F'+#$>+@24+E#$>:42&.+1#*$,+82F?&e
942&4L+S D"-05;2%R O(PS%8",?62Q b454348+)4248+>c(548@4+zc%a4*4283#*$8548+>6*+=(4,48&4+4284*+(284#*48+e2)&4+ac8+n8&454*qd#?(48l type trefelement = ^telement; telement = record info : integer; next : trefelement end; b4)$f?&+2)&+4284+b*c:4@$*i+@24+:g42+=(4,48&4+4284*+82f?&q(44*48+e2)&4+@$*f?+f8@4*$85+@4*+m4*'4&&$85 A4*&#$)F?&.+P24+B*C:4@$*+34'C,,&+:$+@24)4,+dG4F'+:G42+d4254*+??Vor1+$8@+??Vor2+#$>+E2)&484(4Q,48&4+634*54348.+=)+)28@+@24+Y#F?>C(54*+@4*+@$*F?+??Vor1+$8@+??Vor2+*4>4*48:24*&48+=(4,48&4+:$ A4*&#$)F?48. J42)%24(L zu vertauschen Anfang 1. 2. 3. 4. 5. 6. 7.??Vor2??Vor1 #U P#))+)CGC?(+??Vor1+#()+#$F?+??Vor2+&#&)HF?(2F?+#$>+428+=(4,48&+@4*+E2)&4+:42548I+@6*>48+924 #()+MC*34@285$85+AC*#$))4&:48.+J4)F?*42348+924+'$*:I+G4(F?4+9C8@4*>H((4+T#()C+RH((4I+28+@4848+@24 B*C:4@$*+#8@4*)+#524*48+,$))+#()+2,+C348+342)%24(?#>&+)'2::24*&48+YC*,#(>#((U+$8&4*+@24)4*+MC*34Q @285$85+8CF?+428&*4&48+'\8848.+ 3U 9F?*42348+924+8$8+@24+B*C:4@$*.+P#342+,$))+N?*4+B*C:4@$*+@24+9C8@4*>H((4+82F?&+34?#8@4(8I+@.?. 4)+54865&I+G488+)24+>6*+@48+YC*,#(>#((+>$8'&2C824*&. J48$&:48+924+>C(548@48+B*C:4@$*'C%>+$8@+4*5H8:48+924+@#342+#8+@48+,2&+??+54'488:42F?84&48 9&4((48+@24+g34*5#34#*&+@4*+B#*#,4&4*L procedure tauschen(????vor1,????vor2:trefelement); {Vertauscht zwei Elemente einer Liste durch Änderung der Verkettung.??Vor1 und??vor2 sind dabei Zeiger auf die Vorgängerelemente der zu vertauschenden Elemente. Vorbedingung:??Vor1 und??vor2 zeigen jeweils auf ein existierendes Element derselben Liste. 1 }!.+YC*,#(4*G42)4+)C((&4+@4*+;C,,48&#*+:$*+MC*34@285$85+#$F?+@24+#$)54)F?(C))4848+9C8@4*>H((4+548#$+34)F?*42Q 348I+G#)+?24*+_4@CF?+$8&4*3(423&I+$,+@24+E\)$85+:$+Z42(+#U+82F?&+AC*G45:$84?,48.
942&4L+!/ D"-05;2%( O(P&P&P&%8",?62Q b454348+)4248+@24+>c(548@48+zc%@4>282&2c848+>6*+42848+j28h*3#$,+)cg24+@24+t$8'c,,48&24*&4u+b*c:4q @$*+whatdoido. type trefknoten = ^tknoten; tknoten = record t: integer; links, rechts: trefknoten end; procedure whatdoido(inwurzel: trefknoten; int: integer); begin if inwurzel <> nil then begin whatdoido(inwurzel^.links, int+1); inwurzel^.t := int; whatdoido(inwurzel^.rechts, int+1) end end; #U g34*(4548+924i+g#)+@24+b*c:4@$*+whatdoido+(42)&4&. h h 1#)+%#))24*&+342)%24()G42)4I+G488+@4*+B*C:4@$*+2,+B#*#,4&4*+inWurzel+@4*+#$>+@4*+>C(548Q @48+942&4+#35432(@4&4+J#$,+$8@+2,+B#*#,4&4*+inT+@4*+14*&+!+634*54348+G2*@e+ d42f?848+924+@48+*4)$(&24*48@48+j#$,+,2&+@48+84$48+;8c&48g4*&48. J4)F?*42348+924+@#88+'8#%%+T28+,#X2,#(+@*42+9H&:48UI+G#)+whatDoIDo+#((54,428+342+=285#34 4284)+34(2432548+J#$,4)+)CG24+inT+i+!+(42)&4&. 3U P24+B*C:4@$*+whatDoIDo+@$*F?(H$>&+@48+J#$,+28+4284*+34)&2,,&48+W42?48>C(54.+124+G2*@+@24)4 P$*F?(#$>QW42?48>C(54+548#88&e FU N)&+@24+P$*F?(#$>QW42?48>C(54+>6*+whatDoIDo+*4(4A#8&+C@4*+G6*@4+@24+B*C:4@$*+#$F?+,2&+4284* #8@4*48+P$*F?(#$>QW42?48>C(54+$8A4*H8@4*&+>$8'&2C824*48e+J45*68@48+924+'$*:+N?*4+K8&GC*&` @U "#8@4(&+4)+)2F?+342+whatDoIDo+$,+4284+)288AC((4+K8G48@$85+@4*+W4'$*)2C8e+J45*68@48+924 N?*4+K8&GC*&`
942&4L+!! Y#,4L+jjjjjjjjjjjjjjjjjjjjjjjjjjjj V#&*2'4(8$,,4*L+jjjjjjjjjjjjjjj K332(@$85+:$+Z42(+#UL! '( %& $ " ) #
942&4L+!^ D"-05;2%T O'%8",?62Q P24+2,+;$*)+42854>6?*&48+J28H*3H$,4+:42F?848+)2F?+@#@$*F?+#$)I+@#))+_4@4*+;8C&48+548#$+:G42+T55>. (44*4U+328H*4+Z42(3H$,4+#()+Y#F?>C(54*+?#&.+JH$,4+,6))48+_4@CF?+82F?&+$834@285&+328H*+)428. N,+RC(548@48+G4*@48+JH$,4+34&*#F?&4&I+342+@4848+_4@4*+428:4(84+;8CQ &48+4284+34(243254+K8:#?(+AC8+Y#F?>C(54*8+?#348+'#88I+G24+28+*4F?&) )&4?48@4*+K332(@$85+342)%24(?#>&+@#*54)&4((&. 12*+*4#(2)24*48+42848+)C(F?48+J#$,I+28@4,+_4@4*+;8C&48+84348+)4284, N8>CQ14*&+4284+(284#*4+E2)&4+AC8+d4254*8+#$>+82F?&Q(44*4+Z42(3H$,4+48&Q?H(&+T_4@4*+d4254*+#$)+@24)4*+E2)&4+2)&+#()C+)&4&)+$85(42F?+nilU.+R6*+J(H&Q &4*+2)&+@24)4+Y#F?>C(54*(2)&4+(44*. P#:$+A4*G48@48+G2*+>C(548@4+Zc%@4>282&2C848L type trefmultibaumkn = ^tmultibaumkn; trefnachflistenelem = ^tnachflistenelem; tnachflistenelem = record teilbaumwurzel : trefmultibaumkn; next : trefnachflistenelem; end; tmultibaumkn = record info : integer; nachfliste : trefnachflistenelem; end; P24+8#F?>C(548@4+K332(@$85+:425&+@48+)4(348+J#$,+G24+@24+C348)&4?48@4+K332(@$85I+)&4((&+#34*+>6* _4@48+;8C&48+@24+P4()+@4)+K$>3#$)+428)F?(247(2F?+@4*+Y#F?>C(54*(2)&4+,2&+@#*L! %! %# " # $ #"!"#$%&'!"#$%&/!"#$%&0!"#$%&2!"#$%&1/!"#$%&10!"#$%&0'
942&4L+!a Y#,4L+jjjjjjjjjjjjjjjjjjjjjjjjjjjj V#&*2'4(8$,,4*L+jjjjjjjjjjjjjjj 9F?*42348+ 924+ 4284+*4'$*)2A4+ B*C:4@$*I+@24+ 42848+)C(F?48+ J#$,+@$*F?(H$>&+ $8@+@#342+@48+ N8>CQ14*& _4@4)+;8C&48)+@$*F?+)42848+845#&2A48+14*&+4*)4&:&+T#()C+,2&+]!+,$(&2%(2:24*&U.+M4*G48@48+924+>C(548@48 B*C:4@$*'C%>L procedure baumnegation(inrefwurzel: trefmultibaumkn); { Durchläuft den Baum und ersetzt den Info-Wert jedes Knotens durch seinen negativen Wert.}
942&4L+!k D"-05;2%S O&PR%8",?62Q =284+R$8'&2C8+abs+:$*+J4*4F?8$85+@4)+#3)C($&48+J4&*#5)+4284*+5#8:48+d#?(+)C((+4284,+>$8'&2C8)C*248Q &24*&48+Z4)&+,2&+"2(>4+AC8+=285#34Hl$2A#(48:'(#))48+$8&4*:C548+G4*@48. N,+RC(548@48+54(&4+/+!+HJ+$8@+)42+HJ K +Li+HJ+m+n/o+@24+V4854+@4*+%C)2&2A48+5#8:48+d#?(48+C?84+Y$((. P24+>C*,#(4+9%4:2>2'#&2C8+>6*+@24+R$8'&2C8+abs+(#$&4&L absl+ Z " HJI+absT!U+Li+p!p+ 12*+54348+#8342+:G42+=285#34Hl$2A#(48:'(#))48+AC*L =! +Li+HJ K T;(#))4+@4*+%C)2&2A48+=285#348U = - +Li+n+]!+p+!+!+HJ K +o T;(#))4+@4*+845#&2A48+=285#348U #U O,+@24+V4854+@4*+:$(H))2548+=285#348+28+=285#34Hl$2A#(48:'(#))48+:$+:4*(4548I+>4?(&+8CF?+4284 @*2&&4+fl$2A#(48:'(#))4+= [.+124+(#$&4&+)24e 3U b4348+924+@48+z4)&>#((+:$+=285#34hl$2a#(48:'(#))4+= - +#8.
942&4L+-/ D"-05;2%' ORP(%8",?62Q #U P24+>C(548@4+K332(@$85+8488&+A24*+#$)54GH?(&4+g34*@4F'$85),#74+>6*+)&*$'&$*C*248&24*&4+Z4)&)L! " #$%&' ()*+%,&-*.&/0%12%34-*.5! 6 #$%&' (7+%,./0%12%34-*.5! 8 #$%&' (9,*:;3<% =%2,*.-*.&/0%12%34-*.5 >,*,?;@%A>%<1:;3<# =%2,*.-*.&/0%12%34-*. d42f?848+924+28+@24)4+k332(@$85+@24+j4:24?$8548+:g2)f?48+@48+@#*54)&4((&48+v#748+g24+>c(5&+428l d42f?848+924+42848+b>42(+ac8+4284,+v#7+k+:$+4284,+v#7+ji+g488+4284+ac(()&h8@254+g34*@4f'$85 54,H7+V#7+K+#$F?+4284+AC(()&H8@254+g34*@4F'$85+54,H7+V#7+J+2,%(2:24*&I+G488+V#7+K+#()C V#7+J+$,>#))&. J42)%24(L+R#(()+4284+AC(()&H8@254+dG425634*@4F'$85+#$F?+4284+AC(()&H8@254+K8G42)$85)634*@4Q F'$85+)2F?4*)&4((&I+:42F?848+924+42848+B>42(+AC8+<dG425634*@4F'$85D+8#F?+<K8G42)$85)634*@4Q F'$85D+428.
942&4L+-! Y#,4L+jjjjjjjjjjjjjjjjjjjjjjjjjjjj V#&*2'4(8$,,4*L+jjjjjjjjjjjjjjj 3U P24+ R$8'&2C8+ MinZiffer+ )C((+ @24+ '(428)&4+ d2>>4*+ @4*+ P4:2,#(@#*)&4(($85+ @4*+ 82F?&Q845#&2A48 5#8:48+d#?(+inZahl+34)&2,,48. type tziffer = 0..9; tnatzahl = 0..maxint; function MinZiffer (inzahl:tnatzahl): tziffer; { bestimmt die kleinste Ziffer von inzahl} var rest: tnatzahl; min, ziffer: tziffer; 1 begin 2 rest := inzahl; 3 min := 9; 4 while rest > 0 do 5 begin 6 ziffer := rest mod 10; 7 rest := rest div 10; 8 if ziffer < min then 9 min := ziffer; 10 end; 11 MinZiffer := min 12 end; { MinZiffer } 3!U+12*@+,2&+@4,+Z4)&@#&$,+T!aI+!U+4284+"#$$%&'!()*+,-!.+)%/!*%01+2(+34/!*+4**42F?&e+ 3-U+12*@+,2&+@4,+Z4)&@#&$,+T!aI+!U+4284+"#$$%&'!()*+,5.+)*01+2(+34/!*+4**42F?&e+ J45*68@48+924+_4G42()+N?*4+K8&GC*&.
942&4L+-^ U"$5332,-5$$",0%12#%B"$$KV202@,!. 94(3)&@4>2824*&4+;C8)&4834:42F?84*+34)&4?48+8$*+#$)+b*C73$F?)Ŝ.+J4:42F?84*+AC8+9@#*@Q 'C8)&48+G24+:.J.+maxint+)28@+#()C+#$)548C,,48 -. Zc%34:42F?84*8+G2*@+428+t+AC*#854)&4((&.+ J4:42F?84*+AC8+d4254*&c%48+34528848+,2&+tRef.+ J4:42F?84*+>C*,#(4*+B#*#,4&4*+34528848+,2&+inI+io+C@4*+out. [. q4@4+k8g42)$85+345288&+28+4284*+84$48+d42(4r begin+$8@+end+)&4?48+_4g42()+28+4284*+4254848+d42(4 ^. K8G42)$85)>C(548+G4*@48+:G2)F?48+begin+$8@+end+$,+4284+'C8)&4+K8:#?(+AC8+-+Q+^+9&4((48+ 42854*6F'&.+begin+$8@+end+)&4?48+(28')368@25+$8&4*+@4*+:$54?\*2548+;C8&*C((#8G42)$85I+)24+G4*Q @48+82F?&+G42&4*+42854*6F'&. a. K8G42)$85)&42(4+AC8+;C8&*C((#8G42)$8548+G4*@48+548#$)C+42854*6F'&. S. N,+B*C5*#,,'C%>+G2*@+@24+K$>5#34+34)F?*24348I+@24+@#)+B*C5*#,,+(\)&. s. q4@4*+r$8'&2c8)q+$8@+b*c:4@$*'c%>+48&?h(&+4284+'8#%%4+k$>5#34834)f?*423$85+#()+;c,,48&#*.+ b5>.+g4*@48+:$)h&:(2f?+@24+b#*#,4&4*+'c,,48&24*&. k. P24+B#*#,4&4*+G4*@48+)C*&24*&+8#F?+@4*+g34*5#34#*&L+=285#85)QI+f8@4*$85)Q+$8@+K$)5#85)%#*#,4Q &4*.+ 0. P24+g34*5#34#*&+_4@4)+B#*#,4&4*)+G2*@+@$*F?+MC*#8)&4((48+AC8+inI+io+C@4*+out+AC*+@48+B#*#,4Q &4*8#,48+54'488:42F?84&.!/. P#)+E#cC$&+AC8+R$8'&2C848+$8@+B*C:4@$*48+48&)%*2F?&+@4,+AC8+B*C5*#,,48.!!. q4@4+ac8+4284*+r$8'&2c8+c@4*+b*c:4@$*+348$&:&4+3:g.+,#82%$(24*&4+m#*2#3(4+g2*@+#()+b#*#,4&4*+ 634*54348.+=)+G4*@48+'4284+5(C3#(48+M#*2#3(48+,#82%$(24*&.+!-. q4@4*+82f?&+ac8+@4*+b*c:4@$*+a4*h8@4*&4+b#*#,4&4*+g2*@+#()+14*&%#*#,4&4*+634*54348.+e4@25(2f?+ R4(@4*+'\8848+#$F?+#8)&#&&+#()+14*&%#*#,4&4*+#()+W4>4*48:%#*#,4&4*+634*54348+G4*@48I+$,+@48+ 9%42F?4*%(#&:+>6*+@24+;C%24+$8@+@48+;C%24*AC*5#85+:$+)%#*48.+P4*+R4(@34:42F?84*+345288&+#34*+ )&4&)+,2&+@4,+B*H>2X+inI+G488+@#)+R4(@+82F?&+A4*H8@4*&+G2*@.![. R$8'&2C8)%*C:4@$*48+G4*@48+G24+R$8'&2C848+2,+,#&?4,#&2)F?48+92884+348$&:&I+@.?.+)24+34)2&:48+ 8$*+14*&%#*#,4&4*.+124+342+B*C:4@$*48+2)&+4284+K$)8#?,4+8$*+342+R4(@4*8+4*(#$3&I+$,+:$)H&:(2F?48+ 9%42F?4*%(#&:+$8@+;C%24*#$>G#8@+:$+A4*,42@48.!^. 14*&%#*#,4&4*+G4*@48+82F?&+#()+(C'#(4+M#*2#3(4+,2))3*#$F?&.!a. P24+E#$>A#*2#3(4+G2*@+2884*?#(3+4284*+forQK8G42)$85+82F?&+,#82%$(24*&.!S. P24+b*$8@)H&:4+@4*+)&*$'&$*24*&48+B*C5*#,,24*$85+)28@+)&*2'&+:$+34>C(548.